2011-12-22 2 views
0

Есть ли известная проблема с GCJ и с использованием <Void, Void>? Мой код работает отлично без него, но при попытке скомпилировать его в ех с помощью GCJ не удается:GCJ и <Void, Void>

$ gcj -c -g -O Program.java 
Program.java:25: error: '{' expected. 
     class Task extends SwingWorker<Void, Void> { 
             ^
Program.java:25: error: Class or interface declaration expected. 
     class Task extends SwingWorker<Void, Void> { 
             ^
Program.java:25: error: . 
     class Task extends SwingWorker<Void, Void> { 
             ^
3 errors 

Кроме того, если я удалю <Void, Void> (мой код не работает на 100%), я получаю их дальше вниз line:

$ gcj -c -g -O Program_Full.java 
Program.java:10: error: Class or interface `javax.imageio.ImageIO' not found in import. 
    import javax.imageio.ImageIO; 
     ^
Program.java:25: error: Superclass `SwingWorker' of class `Program$Task' not found. 
     class Task extends SwingWorker { 
          ^
2 errors 

Мой код компилируется и работает отлично, похоже, что GCJ не любит определенные аспекты. Плохая версия? Я просто скачал его: gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

+0

Содержит ли приложение. есть графический интерфейс? Уверен, что [JWS] (http://stackoverflow.com/tags/java-web-start/info) не будет с этим проблем. –

ответ

0

Я не знаю, где gcj находится в текущей версии или в вашей версии, но похоже, что вы используя версию, в которой нет функций языка Java 5 и более поздних языков, например, дженериков.

Я бы порекомендовал забыть о gcj и вместо этого использовать Oracle JDK для компиляции и запуска ваших программ Java. На мой взгляд, gcj не пригодится ни для какой серьезной разработки программного обеспечения Java.

+0

Моя основная причина использования gcj заключалась в компиляции в собственный код. Что бы вы предложили для этого? Это не главное, просто небольшое приложение, которое я бы хотел использовать как exe, а не банку или что-нибудь еще. – carget

+0

Зачем вам это нужно? Даже если вы скомпилируете родной exe, все равно потребуется запустить библиотеки времени выполнения Java, и он также не будет работать быстрее только потому, что это собственный код. Java, к сожалению, вероятно, не лучший инструмент, если вы хотите небольшой родной exe ... – Jesper

+0

Ах, я уже закодировал все на Java. Так что нет возможности сделать это автономным exe? – carget

Смежные вопросы