Разрешение конфликта версий между java и javac на Ubuntu
У меня проблема с моим скомпилированным Java-приложением на Ubuntu. Он выбрасывает UnsupportedClassVersionError
.
Я компилирую с более высокой версией JDK, чем тот, который настроен в моем PATH для запуска Java:
$ javac -version
javac 1.7.0_147
$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)
Как я могу это решить?
Ответы
Ответ 1
Выполните одно из следующих действий, чтобы найти место, где находится
javac 1.7.0_147
используется следующим образом:
whereis javac
или
locate javac
или
find javac
Затем, как только вы найдете каталог, символически и принудительно соедините содержимое bin с /usr/bin:
sudo ln -f -s [put location here]/bin/* /usr/bin
Ответ 2
Введите следующий код в терминале:
sudo update-alternatives --config java
Он попросит вас:
Есть два варианта альтернативной java (предоставление/usr/bin/java).
Selection Path Priority Status
0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode
Press enter to keep the current choice[*], or type selection number:
Я ввожу 2, поскольку я хочу использовать java 1.7.0_21
Ответ 3
Вам также нужно будет:
sudo update-alternatives --config javac
Выберите желаемый компилятор java из предоставленного списка. Например, на Centos 5
There are 2 programs which provide 'javac'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/java-1.6.0-openjdk/bin/javac
*+ 2 /usr/lib/jvm/java-1.7.0-openjdk/bin/javac
Ответ 4
Это то, что вы хотите Java и Ubuntu. У меня такая же конфигурация в принципе, но я переключаюсь туда и обратно с Glassfish и Java7. Посмотрите и попробуйте настроить Java env аналогичным образом.