"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 ответа:
Запустите
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
Сделано
Пожалуйста, дайте знать, если это не работает для вас. Я помогу Вам решить альтернативно!