为什么IcedTea6不能编译Java 1.5特定代码?

时间:2009-03-25 03:58:23

标签: java icedtea

我跑了:

javac Perf.java

得到了:

ERROR in Prefs.java (at line 36)

HashMap<String, String> map = new HashMap<String, String>();
        ^^^^^^^^^^^^^^
Syntax error, parameterized types are only available if source level is 1.5

当我输入时:java -version 我明白了:

java version "1.6.0_0"
IcedTea6 1.4 (fedora-11.b14.fc10-i386) Runtime Environment (build 1.6.0_0-b14)
OpenJDK Client VM (build 14.0-b08, mixed mode)

javac -version让我:

Eclipse Java Compiler 0.883_R34x, 3.4.1 release, Copyright IBM Corp 2000, 2008. All rights reserved.

这是Fedora 10的全新安装。这个icedtea业务是什么?为什么Java编译器默认为Eclipse编译器?有人解释了这种疯狂......

2 个答案:

答案 0 :(得分:1)

检查您的$ PATH变量。听起来你的“java”可执行文件在一个地方而“javac”就在其他地方。

在命令行上尝试“where”或“which”命令 - 这将告诉您shell / OS在哪里找到每个可执行文件:

which java
which javac

答案 1 :(得分:1)

Fedora默认使用开源软件。 Icedtea是OpenJDK的redhat改编版,是完全开源的。 Eclipse编译器是最好的开源命令行java编译器,但它似乎没有为Java 6默认编译。

尝试“javac -help”查看您拥有的选项。它可能只是一个需要调整的简单环境变量。