Почему IcedTea6 не компилирует специфичный для Java 1.5 код? - PullRequest
1 голос
/ 25 марта 2009

Я бегал:

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 ]

1 голос
/ 20 июня 2009

Fedora по умолчанию использует программное обеспечение с открытым исходным кодом. Icedtea - это Redhat адаптация OpenJDK, чтобы быть полностью открытым исходным кодом. Eclipse-компилятор - лучший java-компилятор с открытым исходным кодом, но по умолчанию он не компилируется для Java 6.

Попробуйте "javac -help", чтобы увидеть, какие варианты у вас есть. Это может быть просто переменная окружения, которую нужно настроить.

1 голос
/ 25 марта 2009

Проверьте вашу переменную $ PATH. Похоже, ваш исполняемый файл "java" находится в одном месте, а "javac" - где-то еще.

Попробуйте команду «где» или «который» в командной строке - это скажет вам, где оболочка / ОС находит каждый из этих исполняемых файлов:

which java
which javac
...