如何查找YUM安装的JAVA_HOME环境变量详解
前言 开发中很多需要javac 的程序依赖 JAVA_HOME环境变量. 如果是手工下载源码安装的JDK,很容易知道JAVA_HOME的目录. 例如 whereis javac 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 sudo yum list -y java* 然后可用看到类似下面这样的输出(省略部分…): ... Available Packages 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 的命令如下: sudo yum install -y java-1.7.0-openjdk* 安装 JDK1.8 的命令如下: sudo yum install -y java-1.8.0-openjdk* 2. 查找 JDK1.7 的 JAVA_HOME 2.1 查找 javac : whereis javac 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 total 43952 -r--r--r-- 1 root root 1503 Apr 15 2015 ASSEMBLY_EXCEPTION drwxr-xr-x 2 root root 4096 Dec 25 2015 bin drwxr-xr-x 10 root root 4096 May 2 2015 demo drwxr-xr-x 3 root root 4096 May 2 2015 include drwxr-xr-x 4 root root 4096 May 2 2015 jre drwxr-xr-x 3 root root 4096 May 3 2015 lib -r--r--r-- 1 root root 19263 Apr 15 2015 LICENSE drwxr-xr-x 8 root root 4096 May 2 2015 sample -rw-r--r-- 1 root root 44775741 Apr 15 2015 src.zip drwxr-xr-x 2 root root 4096 May 2 2015 tapset -r--r--r-- 1 root root 172264 Apr 15 2015 THIRD_PARTY_README 2.2 将 JAVA_HOME 加入环境变量: export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64 当然,export 只是临时的。下次重启后就没了。 可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。 当然,可以使用 vim 编辑,或者是 echo >> 命令 jhometip='# add JAVA_HOME' jhomescript='export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64' sudo echo $jhometip >> /etc/rc.d/rc.local sudo echo $jhomescript >> /etc/rc.d/rc.local 这样一般就设置好了。 3. 查找 JDK1.8 的 JAVA_HOME 3.1 查找 javac : whereis javac javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz 可以看到,看软连接指向的位置( 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 具体内容类似下面这样: total 16 drwxr-xr-x. 2 root root 4096 Sep 21 23:08 bin drwxr-xr-x. 3 root root 4096 Sep 21 23:08 include drwxr-xr-x. 4 root root 26 Sep 21 23:08 jre drwxr-xr-x. 3 root root 4096 Sep 21 23:08 lib drwxr-xr-x. 2 root root 4096 Sep 21 23:08 tapset 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 加入环境变量: export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0 当然,或者是 echo >> 命令 jhometip='# add JAVA_HOME' jhomescript='export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0' sudo echo $jhometip >> /etc/rc.d/rc.local sudo echo $jhomescript >> /etc/rc.d/rc.local 这样一般就设置好了。 最后如果Java中设置JAVA_HOME无效可以参考:https://www.oudahe.com/p/40178/ 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |