How does Linux view the installation path of JDK
1:echo $JAVA_HOME
If you use $JAVA_HOME, you can locate the installation path of JDK only if the environment variable $JAVA_HOME is configured, otherwise, as shown below, you cannot locate the installation path of JDK at all.
[root@localhost ~] # java-version
Java version "1.7.0,65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost ~] # echo $JAVA_HOME
2:which java
First of all, let's make it clear that which java cannot locate the installation path. Which java locates to the execution path of the java program. The information on the Internet is like what others say and doesn't think about it at all. So how do you navigate to the installation path of java? Let's take a look at the example, as shown below:
[root@localhost ~] # java-version
Java version "1.7.0,65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost ~] # which java
/ usr/bin/java
[root@localhost ~] # ls-lrt / usr/bin/java
Lrwxrwxrwx. 1 root root 22 Aug 17 15:12 / usr/bin/java-> / etc/alternatives/java
[root@localhost ~] # ls-lrt / etc/alternatives/java
Lrwxrwxrwx. 1 root root 46 Aug 17 15:12 / etc/alternatives/java-> / usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
[root@localhost ~] #
[root@localhost ~] # cd / usr/lib/jvm
[root@localhost jvm] # ls
Java-1.6.0-openjdk-1.6.0.0.x86_64 java-1.7.0-openjdk-1.7.0.65.x86_64 jre jre-1.6.0 jre-1.6.0-openjdk.x86_64 jre-1.7.0 jre-1.7.0-openjdk.x86_64 jre-openjdk
[root@localhost jvm] #
The same is true of whereis java, which itself cannot navigate to the installation path. You can use the above example to locate the installation path
3: rpm-ql packagename
This method will not work if JDK is installed in source code. In other words, rpm-ql packagename also has some limitations.
[root@localhost ~] # java-version
Java version "1.7.0,65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost ~] # rpm-qa | grep java
Tzdata-java-2014g-1.el6.noarch
Java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
Java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
[root@localhost ~] # rpm-ql java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 | more
/ etc/.java
/ etc/.java/.systemPrefs
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-3.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl-1.7.0.65.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl-1.7.0.jar
/ usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl.jar
/ usr/lib/jvm-exports/jre-1.7.0-openjdk.x86_64
/ usr/lib/jvm-private/java-1.7.0-openjdk.x86_64
/ usr/lib/jvm-private/java-1.7.0-openjdk.x86_64/jce
/ usr/lib/jvm-private/java-1.7.0-openjdk.x86_64/jce/vanilla
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/ASSEMBLY_EXCEPTION
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/LICENSE
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/THIRD_PARTY_README
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/java
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/keytool
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/orbd
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/pack200
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/policytool
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/rmid
/ usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/rmiregistry
-- More--