"which java" в CentOS печатает неверный путь java


Я не уверен, почему "Какая java" и еще "где Ява" пути не верны. Я попытался отредактировать ~/.bash_profile и/etc / environment не помогли. Желаемый путь-это то, что видно в" echo $JAVA_HOME " ниже, но то же самое не отражается в "Какая java"

Ниже то, что я получаю в CentOS 6.4:

Какая java

/ usr / bin / java


java - версия

Java версия "1.7.0_45"

Среда выполнения JAVA(TM) SE (build 1.7.0_45-b18)

JAVA HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.45-b08, смешанный режим)


где Ява

Java: /usr / bin / java / etc /java/usr/lib /java/usr/share / java


Echo $JAVA_HOME

/usr / java/jdk1. 7. 0_45/jre = > желаемый показывает корректно, когда echo $JAVA_HOME


3 4

3 ответа:

Запустите alternatives --config java, Чтобы выбрать версию Java, которую вы хотите использовать по умолчанию. Он будет распечатать список установленных Javas, чтобы выбрать из.

which java, впрочем, всегда будет распечатывать /usr/bin/java. Это не значит, что он установлен неправильно! Обратите внимание:

$ ls -l `which java`
lrwxrwxrwx 1 root root 22 Oct 19 11:49 /usr/bin/java -> /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 35 Oct 19 11:49 /etc/alternatives/java -> /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Если вы используете alternatives для изменения пути к IcedTea, ls -l /etc/alternatives/java отразит это.

Ваш путь (и ничто другое) определяет, в каких каталогах искать команды. То же самое происходит в Linux, Solaris и DOS.

Когда вы делаете which {command}, он находит первый каталог, в котором вы можете выполнить команду.

Когда вы обновляете свой путь в .bashrc, вам нужно снова создать его, чтобы изменить текущие настройки.

Иногда альтернативы не работают в одной команде, выбрав нужную версию java. Хотя я не уверен в точной причине этого..

Я пал жертвой такого сценария. Автопилот не сработал, теперь мы должны лететь вручную..

В любом из приведенных ниже двух файлов в вашей установке unix добавьте следующие переменные и вызов скрипта оболочки (я предоставил ниже) -

~/.bashrc

export JAVA_HOME=/opt/jdk1.8.0_141
export PATH=$JAVA_HOME/bin:$PATH
sudo bash /appl/common/toFixJava.sh

Или

/ etc / profile

export JAVA_HOME=/opt/jdk1.8.0_141
export PATH=$JAVA_HOME/bin:$PATH
sudo bash /appl/common/toFixJava.sh

Приведенный ниже сценарий устанавливает остальные модули java для использования java, которую вы хотите использовать -

ToFixJava.sh

altrs="java javac jre jarsigner javadoc javafxpackager javah javap java-rmi.cgi javaws jcmd jconsole jcontrol jdb jhat jinfo jmap jmc jmc.ini jps jrunscript jsadebugd jstack jstat jstatd jvisualvm keytool appletviewer apt ControlPanel extcheck idlj native2ascii orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc"

Для каждого в $altrs do

alternatives --install /usr/bin/$each $each /opt/jdk1.8.0_141/bin/$each <desired installation index number, e.g. 2>
alternatives --set $each /opt/jdk1.8.0_141/bin/$each

Сделано

Пожалуйста, дайте знать, если это не работает для вас. Я помогу Вам решить альтернативно!