Я хотел запустить свой app.jar через терминал с помощью команды java -jar
, и я получил следующую ошибку:
Main был скомпилирован более поздней версией Java Runtime ( версия файла класса 56.0), эта версия Java Runtime распознает только версии файла класса до 55.0
, что меня удивило, потому что когда я все настраивал, я скачал и установил jdk-12.0.1
из java.sun.com. Кроме того, путь JAVA_HOME
в /etc/environment
установлен в каталог /usr/lib/jvm/openjdk-12.0.1
. Но когда я запускаю java --version
, он показывает мне:
openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)
Может кто-нибудь объяснить, почему это так и что я должен сделать, чтобы все правильно настроить?
Ваш Java системного уровня все еще настроен как OpenJDK 11. Для управления несколькими установками Java правильно необходимо зарегистрировать JDK Oracle / Открытый JDK 12, который Вы вручную загрузили так, чтобы Ubuntu могла распознать его. После этого можно настроить определенную версию Java, которую Вы хотите использовать update-alternatives
. Команды ниже зарегистрируют новую установку Java и установят ее как первоочередную задачу:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/openjdk-12.0.1/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/openjdk-12.0.1/bin/javac" 1
Если бы Вам только нужна единственная установка Java, было бы легче установить последний Java как системный пакет через официальные репозитории или ppa:
OpenJDK 12:
sudo apt install openjdk-12-jdk
Oracle JDK 12:
sudo add-apt-repository ppa:linuxuprising/java
sudo apt install oracle-java12-installer