Символические ссылки и смысл / etc / alternatives

При вводе java в мою консоль используется символическая ссылка в /usr/bin/java.

which java
/usr/bin/java

Эта символическая ссылка указывает на /etc/alternatives/java.

file /usr/bin/java
/usr/bin/java: symbolic link to `/etc/alternatives/java' 
[d2 ] / etc / alternatives / java - это символическая ссылка, которая указывает на /usr/lib/jvm/jdk1.8.0_20/bin/java

. Почему такой объезд? Почему java не указывает на /usr/lib/jvm/jdk1.8.0_20. Я не вижу никакого преимущества.

1
задан 3 November 2015 в 14:01

1 ответ

Вы обнаружили альтернативную систему в Debian / Ubuntu:

Попробуйте

% sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java         1082      auto mode
  1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1071      manual mode
  2            /usr/lib/jvm/java-8-openjdk-i386/jre/bin/java   1081      manual mode
* 3            /usr/lib/jvm/java-8-oracle/jre/bin/java         1082      manual mode

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

Из man update-alternatives

[ f2]
2
ответ дан 23 May 2018 в 16:07
  • 1
    В Linux Mint 18 Cinnamon обязательно проверьте /etc/profile.d/jdk_home.sh. Я переименовал этот файл в jdk_home.sh.old, и теперь мой путь не перестает меняться, и я могу вызвать java -version и увидеть Java 9 как ожидается. Несмотря на то, что я правильно выбрал Java 9 в update-aternatives --config java, этот файл jdk_home.sh сохранил значение $ PATH – flyingdrifter 10 December 2017 в 00:23

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

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