Я уже прочитал много похожих постов в Интернете, но, похоже, не могу прийти к решению. Я хочу иметь возможность переключаться между версиями Java. Заранее спасибо! ОС: Ubuntu 16.04.6 LTS x86_64
Я уже вручную установил и установил альтернативы обновления java и javac
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-12-oracle/bin/java 1091 auto mode
* 1 /usr/lib/jvm/java-12-oracle/bin/java 1091 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 0 manual mode
sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-12-oracle/bin/javac 1091 auto mode
* 1 /usr/lib/jvm/java-12-oracle/bin/javac 1091 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 0 manual mode
echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64
PATH показывает / usr / lib / jvm / java-8-openjdk- amd64 / bin и / usr / lib / jvm / java-12-oracle / bin
echo $PATH
/home/myname/Repositories/build/depot_tools:/home/myname/bin:/home/myname/.local/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/cuda/bin:/snap/bin:/usr/lib/jvm/java-12-oracle/bin:/usr/lib/jvm/java-12-oracle/db/bin
Кроме того, я не могу изменить JAVA_HOME. Я не знаю, где он установлен. У меня нигде не установлено JAVA_HOME, я проверил / etc / environment, ~ / .bashrc и ~ / .profile
Окей Обновление, относительно JAVA_HOME. Я узнал, где он был установлен (и т.д. / профиль), и я сбросил его и получил. Не уверен, как он там оказался, может быть, программа сделала это.
Я хочу и ожидаю, чтобы переключаться между версиями Java и иметь возможность компилировать и выполнять программы Java.
Пример, когда я запускаю более позднюю версию Java-программы из терминала.
Исключение в потоке "main" java.lang.UnsupportedClassVersionError: Программа была скомпилирована более поздней версией Java Runtime (версия файла класса 54.0), эта версия Java Runtime распознает только версии файла класса до 52.0
Наконец, для update-java-alternatives --list у меня есть:
update-java-alternatives --list
java-12-oracle 1091 /usr/lib/jvm/java-12-oracle
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
Также, если я попытаюсь установить его:
sudo update-java-alternatives -s java-12-oracle
update-alternatives: error: no alternatives for jaccessinspector
update-alternatives: error: no alternatives for jaccesswalker
update-alternatives: error: no alternatives for kinit
update-alternatives: error: no alternatives for klist
update-alternatives: error: no alternatives for ktab
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: jdk alternative does not exist: /usr/lib/jvm/java-12-oracle/bin/jaccessinspector
update-java-alternatives: jdk alternative does not exist: /usr/lib/jvm/java-12-oracle/bin/jaccesswalker
update-java-alternatives: jdk alternative does not exist: /usr/lib/jvm/java-12-oracle/bin/kinit
update-java-alternatives: jdk alternative does not exist: /usr/lib/jvm/java-12-oracle/bin/klist
update-java-alternatives: jdk alternative does not exist: /usr/lib/jvm/java-12-oracle/bin/ktab