如何查找YUM安装的JAVA_HOME环境变量详解
前言
开发中很多需要javac的程序依赖JAVA_HOME环境变量.
如果是手工下载源码安装的JDK,很容易知道JAVA_HOME的目录.例如
whereisjavac
javac:/usr/local/jdk1.8.0_74/bin/javac
那么对应的JAVA_HOME为/usr/local/jdk1.8.0_74.
而YUM安装的jdk,不需要配置PATH,因为已经自动使用软连接做好了。
echo$PATH javac-version
1.YUM安装JDK
1.1查找可用的JDK
sudoyumlist-yjava*
然后可用看到类似下面这样的输出(省略部分…):
... AvailablePackages java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-demo.x86_64 java-1.7.0-openjdk-devel.x86_64 java-1.7.0-openjdk-javadoc.noarch java-1.7.0-openjdk-src.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-debug.x86_64 java-1.8.0-openjdk-demo.x86_64 java-1.8.0-openjdk-demo-debug.x86_64 java-1.8.0-openjdk-devel.x86_64 java-1.8.0-openjdk-devel-debug.x86_64 java-1.8.0-openjdk-headless.x86_64 java-1.8.0-openjdk-headless-debug.x86_64 java-1.8.0-openjdk-javadoc.noarch java-1.8.0-openjdk-javadoc-debug.noarch java-1.8.0-openjdk-src.x86_64 java-1.8.0-openjdk-src-debug.x86_64
根据需要,安装JDK1.7或者JDK1.8,当前1.8已经很稳定了,推荐JDK1.8
1.2安装JDK
安装JDK1.7的命令如下:
sudoyuminstall-yjava-1.7.0-openjdk*
安装JDK1.8的命令如下:
sudoyuminstall-yjava-1.8.0-openjdk*
2.查找JDK1.7的JAVA_HOME
2.1查找javac:
whereisjavac
javac:/usr/bin/javac/usr/share/man/man1/javac.1.gz
可以看到,/usr/bin/javac,一般来说/usr/bin默认加入了PATH路径,所以可以直接执行.
然后一路跟踪,看软连接指向的位置(ll是ls-l的快捷命令):
ll/usr/bin/javac
…/usr/bin/javac->/etc/alternatives/javac
然后继续:
ll/etc/alternatives/javac
JDK1.7大致是这个样子:
…/etc/alternatives/javac->/usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac
再继续:
ll/usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac
不再是软连接。结合这个地址可以分析得到,JAVA_HOME的值应该是/usr/lib/jvm/java-1.7.0-openjdk.x86_64。
当然,使用这个地址就可以了!
如果继续下一步查看,可以看到具体的版本号:
ll/usr/lib/jvm/java-1.7.0-openjdk.x86_64
…/usr/lib/jvm/java-1.7.0-openjdk.x86_64->java-1.7.0-openjdk-1.7.0.79.x86_64
使用下面的命令即可看到真实的目录,但一般不使用下面的具体版本号,升级什么的可能会出问题。
ll/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
具体内容类似下面这样:
ll/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
total43952 -r--r--r--1rootroot1503Apr152015ASSEMBLY_EXCEPTION drwxr-xr-x2rootroot4096Dec252015bin drwxr-xr-x10rootroot4096May22015demo drwxr-xr-x3rootroot4096May22015include drwxr-xr-x4rootroot4096May22015jre drwxr-xr-x3rootroot4096May32015lib -r--r--r--1rootroot19263Apr152015LICENSE drwxr-xr-x8rootroot4096May22015sample -rw-r--r--1rootroot44775741Apr152015src.zip drwxr-xr-x2rootroot4096May22015tapset -r--r--r--1rootroot172264Apr152015THIRD_PARTY_README
2.2将JAVA_HOME加入环境变量:
exportJAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
当然,export只是临时的。下次重启后就没了。
可以添加到rc文件,比如/etc/rc.d/rc.local之中。
当然,可以使用vim编辑,或者是echo>>命令
jhometip='#addJAVA_HOME' jhomescript='exportJAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64' sudoecho$jhometip>>/etc/rc.d/rc.local sudoecho$jhomescript>>/etc/rc.d/rc.local
这样一般就设置好了。
3.查找JDK1.8的JAVA_HOME
3.1查找javac:
whereisjavac
javac:/usr/bin/javac/usr/share/man/man1/javac.1.gz
可以看到,/usr/bin/javac,一般来说/usr/bin默认加入了PATH路径,所以可以直接执行.
然后一路跟踪,看软连接指向的位置(ll是ls-l的快捷命令):
ll/usr/bin/javac
…/usr/bin/javac->/etc/alternatives/javac
然后继续:
ll/etc/alternatives/javac
JDK1.8大致是这个样子:
…/etc/alternatives/javac-> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/bin/javac
再继续:
ll/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/bin/javac
不再是软连接。结合这个地址可以分析得到,JAVA_HOME的值应该是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64。
使用这个地址就可以了!
如果继续下一步查看:
ll/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64
具体内容类似下面这样:
total16 drwxr-xr-x.2rootroot4096Sep2123:08bin drwxr-xr-x.3rootroot4096Sep2123:08include drwxr-xr-x.4rootroot26Sep2123:08jre drwxr-xr-x.3rootroot4096Sep2123:08lib drwxr-xr-x.2rootroot4096Sep2123:08tapset
3.2查看软连接:
查看jvm目录:
ll/usr/lib/jvm
则可以看到很多软连接:
java->/etc/alternatives/java_sdk java-1.8.0->/etc/alternatives/java_sdk_1.8.0 java-1.8.0-openjdk->/etc/alternatives/java_sdk_1.8.0_openjdk java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64 java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64-debug java-openjdk->/etc/alternatives/java_sdk_openjdk jre->/etc/alternatives/jre jre-1.8.0->/etc/alternatives/jre_1.8.0
类似这样的,不管jre开头的部分,可以看到/etc/alternatives/java_sdk_1.8.0这样的目录;
执行:
ll/etc/alternatives/java_sdk_1.8.0 ll/etc/alternatives/java_sdk
然后发现,这一堆链接都是指向上面的JAVA_HOME路径:
/etc/alternatives/java_sdk_1.8.0-> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64
所以,可以使用其中之一作为JAVA_HOME环境变量的值。
说明:既然安装了,基本上服务器上就不会频繁变更.如果有变更,则查找并修正即可。
3.3将JAVA_HOME加入环境变量:
exportJAVA_HOME=/etc/alternatives/java_sdk_1.8.0
当然,export只是临时的。下次重启后就没了。
可以添加到rc文件,比如/etc/rc.d/rc.local之中。
当然,可以使用vim编辑,或者是echo>>命令
jhometip='#addJAVA_HOME' jhomescript='exportJAVA_HOME=/etc/alternatives/java_sdk_1.8.0' sudoecho$jhometip>>/etc/rc.d/rc.local sudoecho$jhomescript>>/etc/rc.d/rc.local
这样一般就设置好了。
最后如果Java中设置JAVA_HOME无效可以参考:https://www.nhooo.com/article/122632.htm
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。