"java" on CentOS prints invalid java path

I am not sure why the paths that java and whereis java are wrong. I tried to modify the ~ / .bash_profile and / etc / environment file, but didn't help. The desired path is what is seen in " echo $ JAVA_HOME " below, but the same is not reflected in " which java "

Below I get in CentOS 6.4:

which java

/ Usr / bin / java


java -version

java version "1.7.0_45"

JAVA (TM) SE Runtime Environment (build 1.7.0_45-b18)

JAVA HotSpot (TM) 64-bit server VM (build 24.45-b08, mixed mode)


whereis 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


+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 .

+8

PATH ( ) , . Linux, Solaris DOS.

which {command}, , .

PATH .bashrc, , .

+9

, java. , ...

. - , .

unix script ( ) -

~/.bashrc

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

/ ../

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

script 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, e.g. 2>
alternatives --set $each /opt/jdk1.8.0_141/bin/$each

, , . !

0

All Articles