Невозможно использовать команды «java», «javac» и т. Д. На терминале напрямую и в двух версиях jdk? [дубликат]

На этот вопрос уже есть ответ здесь:

Обычно я использую eclipse, но я сказал: «Давайте пофантазируем», и все произошло. Сначала я попытался использовать команду терминала javac . Я получил

 The program 'javac' can be found in the following packages:

* default-jdk
* ecj
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
* openjdk-9-jdk-headless

Try: sudo apt install (selected package)

. Я уже установил jre8 и jdk8 вручную с веб-сайта oracle (стандартная версия), и я уже делаю программы с eclipse. Затем я набрал java -version и получил ответ

openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

, который я не устанавливал вручную. Затем я использовал locate -br ^ javac $ и получил два местоположения (неудивительно). Итак:

  1. Я могу использовать javac только с путем, по которому я установил jdk вручную, но я хочу использовать команды без пути, просто напрямую. Возможно ли это (если да, то как?
  2. Похоже, у меня две версии java. Вызывает ли это какие-либо проблемы? Если да, скажите, пожалуйста, как исправить (я предпочитаю удалить openjdk9)
0
задан 16 March 2017 в 09:36

1 ответ

Вы можете выбрать Java по умолчанию, запустив update-alternatives :

$ sudo update-alternatives --config java

There are 5 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-9-oracle/bin/java              1091      auto mode
  1            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode
* 3            /usr/lib/jvm/java-9-oracle/bin/java              1091      manual mode
  4            /usr/lib/jvm/jdk1.8.0_91                         100       manual mode
  5            /usr/lib/jvm/jdk1.8.0_91/bin/java                100       manual mode

Press <enter> to keep the current choice[*], or type selection number: 

Теперь, чтобы изменить версию, просто введите число и нажмите , введите или, чтобы оставить значение по умолчанию, просто нажмите , введите . Сделайте то же самое с компилятором:

sudo update-alternatives --config javac

И сделайте свой выбор. Теперь можно также использовать лучшую команду update-java-alternatives , рекомендованную Chai .

Предполагая, что у вас установлены эти java-пакеты :

java-9-oracle
java-8-openjdk-amd64
jdk1.8.0_91

И мне нужна версия java-9-oracle , тогда я просто запущу:

sudo update-java-alternatives -s <java_name>

sudo update-java-alternatives -s java-9-oracle

Это создаст все необходимые ссылки на мою желаемую версию java.

Теперь, учитывая, что вы поместили java в другое место, мы будем использовать update-alternatives --install , чтобы сообщить ему, где находится наша java.

sudo update-alternatives --install /usr/bin/java java /usr/share/java/jdk1.8.0_121/bin/java 1

А для компилятора javac то же самое

sudo update-alternatives --install /usr/bin/javac javac /usr/share/java/jdk1.8.0_121/bin/javac 1

Источник: man update-java-alternatives

1
ответ дан 3 November 2019 в 15:12

Другие вопросы по тегам:

Похожие вопросы: