0

GCJ 和使用是否存在已知问题<Void, Void>?没有它我的代码可以正常工作,但是尝试使用 gcj 将其编译为 exe 失败:

$ 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% 运行),我会进一步了解这些:

$ 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)

4

1 回答 1

0

我不知道gcj当前版本的位置,或者您的版本支持什么,但看起来您使用的版本没有 Java 5 和更新的语言功能(如泛型)。

我建议忘记gcj并使用Oracle JDK来编译和运行您的 Java 程序。在我看来,gcj对于任何严肃的 Java 软件开发都没有用处。

于 2011-12-22T09:23:49.710 回答