在CentOS中“哪个java”打印错误的javapath

我不知道为什么“ 哪个java ”和“ whereis java ”path不正确。 我试图编辑〜/ .bash_profile和/ etc /环境,但没有帮助。 所需的path是在下面的“ echo $ JAVA_HOME ”中看到的,但是同样没有反映在“ 哪个java

以下是我在CentOS 6.4中得到的结果:

其中的java

在/ usr / bin中/ JAVA


java -version

java版本“1.7.0_45”

JAVA(TM)SE运行环境(build 1.7.0_45-b18)

JAVA HotSpot(TM)64位服务器虚拟机(构build24.45-b08,混合模式)


哪里java

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


运行alternatives --config java选择要用作默认的Java版本。 它会打印出一个安装的Java可供选择的列表。

然而, 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将会反映这一点。

你的PATH(而不是别的)决定了要查找命令的目录。 这在Linux,Solaris和DOS中是一样的。

当你做一个which {command}它找到第一个目录时,你可以执行这个命令。

当你在.bashrc更新你的PATH时,你必须重新来源来改变你的当前设置。

有时,通过选择所需的Java版本,替代品不能在单个命令中使用。 我不确定这个的确切原因..

我是这种情况下的受害者。 自动驾驶失败了,我们现在必须飞行手动。

在unix安装的以下两个文件中,添加以下变量和调用一个shell脚本(我在下面提供) –

在〜/ .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做

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

DONE

请确认是否这不适合你。 我会帮你解决的!