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 3.4.4版(cygming special,GDC0.12,使用dmd 0.125)
发布于 2011-12-22 17:23:50
我不知道gcj在当前版本中处于什么位置,也不知道您的版本支持什么,但是看起来您使用的版本没有Java5和更新的语言特性,比如泛型。
我建议忘记gcj,转而使用Oracle JDK来编译和运行您的Java程序。在我看来,gcj对于任何严肃的Java软件开发都没有用处。
https://stackoverflow.com/questions/8601658
复制相似问题