Разрешение конфликта версий между 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)
Как я могу решить это?
4 ответа
Выполните одно из следующих действий, чтобы определить местоположение этого
javac 1.7.0_147
используется следующим образом:
whereis javac
или же
locate javac
или же
find javac
Затем, как только вы нашли каталог, символически и принудительно свяжите содержимое bin с /usr/bin:
sudo ln -f -s [put location here]/bin/* /usr/bin
Введите следующую команду в терминале:
sudo update-alternatives --config java
Он попросит вас:
Есть 2 варианта альтернативной 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
Вам также нужно будет сделать:
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
Это то, что вы хотите Java и Ubuntu. У меня в основном такой же конфиг, но я переключаюсь с Glassfish и Java7. Посмотрите и попробуйте настроить Java Java Env аналогичным образом
Я добавил и установил альтернативы для Java и Javac со следующими шагами, которые мне подходят:
Шаги 1: Добавьте альтернативы Java и Javac:
Команда для добавления Javac:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/amazon-jdk-11/bin/java" 1
т.е.: "/opt/amazon-jdk-11/bin/javac" это новый путь к java
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/amazon-jdk-11/bin/javac" 1
т.е.: /opt/amazon-jdk-11/bin/javac - это новый путь к javac
Шаги 2: Установлены альтернативы Java и Javac:
sudo update-alternatives --config javac
sudo update-alternatives --config javac
После того, как вы введете указанную выше команду, вы увидите экран, как показано ниже, вы можете выбрать свой номер, который вы хотите настроить java.
Я выбрал " 1 " в списке, поскольку хотел установить "/opt/amazon-jdk-11/bin/java" в качестве своего javac.
Убедитесь, что ваша альтернативная установка Java успешна или нет, с помощью следующих команд:
which javac
а также which java
вы увидите экран, как показано ниже: