如果JDK是源码安装,那么rpm -qa | grep java命令也是定位不到的jdk的安装路径的,比如我是用的yum命令安装,使用rpm -qa | grep java命令的话,结果如下所示:
[root@localhost ~]# rpm -qa | grep java
[root@ls /]# rpm -qa | grep java
java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2023c-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.382.b05-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
ls -lrt
先了解下ls命令:
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
复制代码
根据上面的命令,我们可以执行如下命令,找到JDK的安装路径:
[root@localhost ~]# ls -lrt /usr/bin/java
cd /usr/lib/jvm
ls -lrt解析:即将文件以建立时间先后顺序的倒叙排列显示,从上面的结果可以看出,/usr/bin/java是执行路径,那么继续执行后面的文件路径,即可找到JDK的安装路径为/usr/lib/jvm/java-1.8.0。
[root@ls /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@ls /]# rpm -qa | grep java
java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2023c-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.382.b05-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
[root@ls /]# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Oct 4 23:15 /usr/bin/java -> /etc/alternatives/java
[root@ls /]# ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Oct 4 23:15 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java
[root@ls /]# cd /usr/lib/jvm
[root@ls jvm]# ls
java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 jre jre-1.8.0 jre-1.8.0-openjdk jre-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 jre-openjdk
[root@ls jvm]# vim /etc/profile
[root@ls jvm]# pwd
/usr/lib/jvm
[root@ls jvm]# ls
java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 jre jre-1.8.0 jre-1.8.0-openjdk jre-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 jre-openjdk
[root@ls jvm]# vim /etc/profile
[root@ls jvm]# source /etc/profile
[root@ls jvm]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
[root@ls jvm]#