如何查找YUM安装的JAVA_HOME环境变量详解
如何查找YUM安装的JAVA_HOME环境变量详解
前言
开发中很多需要javac 的程序依赖 JAVA_HOME环境变量.
如果是手工下载源码安装的JDK,很容易知道JAVA_HOME的目录. 例如
1
|
whereis javac |
1
|
javac: /usr/local/jdk1.8.0_74/bin/javac |
那么对应的 JAVA_HOME 为 /usr/local/jdk1.8.0_74.
而 YUM 安装的 jdk, 不需要配置 PATH, 因为已经自动使用软连接做好了。
1
2
|
echo $PATH javac -version |
1. YUM安装JDK
1.1 查找 可用的JDK
1
|
sudo yum list -y java* |
然后可用看到类似下面这样的输出(省略部分…):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
... 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 的命令如下:
1
|
sudo yum install -y java-1.7.0-openjdk* |
安装 JDK1.8 的命令如下:
1
|
sudo yum install -y java-1.8.0-openjdk* |
2. 查找 JDK1.7 的 JAVA_HOME
2.1 查找 javac :
1
|
whereis javac |
1
|
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz |
可以看到, /usr/bin/javac, 一般来说 /usr/bin 默认加入了 PATH 路径,所以可以直接执行.
然后一路跟踪,看软连接指向的位置( ll 是 ls -l 的快捷命令):
1
|
ll /usr/bin/javac |
1
|
… /usr/bin/javac -> /etc/alternatives/javac |
然后继续:
1
|
ll /etc/alternatives/javac |
JDK1.7 大致是这个样子:
1
|
… /etc/alternatives/javac -> /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac |
再继续:
1
|
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。
当然,使用这个地址就可以了!
如果继续下一步查看,可以看到具体的版本号:
1
|
ll /usr/lib/jvm/java-1.7.0-openjdk.x86_64 |
1
|
… /usr/lib/jvm/java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.79.x86_64 |
使用下面的命令即可看到真实的目录, 但一般不使用下面的具体版本号,升级什么的可能会出问题。
1
|
ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64 |
具体内容类似下面这样:
1
|
ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64 |
1
2
3
4
5
6
7
8
9
10
11
12
|
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 加入环境变量:
1
|
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64 |
当然, export 只是临时的。下次重启后就没了。
可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。
当然,可以使用 vim 编辑, 或者是 echo >> 命令
1
2
3
4
|
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 :
1
|
whereis javac |
1
|
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz |
可以看到, /usr/bin/javac, 一般来说 /usr/bin 默认加入了 PATH 路径,所以可以直接执行.
然后一路跟踪,看软连接指向的位置( ll 是 ls -l 的快捷命令):
1
|
ll /usr/bin/javac |
1
|
… /usr/bin/javac -> /etc/alternatives/javac |
然后继续:
1
|
ll /etc/alternatives/javac |
JDK1.8 大致是这个样子:
1
2
3
|
… /etc/alternatives/javac -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/bin/javac |
再继续:
1
|
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。
使用这个地址就可以了!
如果继续下一步查看:
1
|
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64 |
具体内容类似下面这样:
1
2
3
4
5
6
|
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 目录:
1
|
ll /usr/lib/jvm |
则可以看到很多软连接:
1
2
3
4
5
6
7
8
|
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 这样的目录;
执行 :
1
2
|
ll /etc/alternatives/java_sdk_1.8.0 ll /etc/alternatives/java_sdk |
然后发现, 这一堆链接都是指向上面的 JAVA_HOME 路径:
1
2
|
/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 加入环境变量:
1
|
export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0 |
当然, export 只是临时的。下次重启后就没了。
可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。
当然,可以使用 vim 编辑, 或者是 echo >> 命令
1
2
3
4
|
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无效可以参考://www.jb51.net/article/122632.htm
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
- CentOS8 安装 jdk8 / java8的教程(推荐)
- NetBeans安装提示neatbeans cannot find java 1.8 or higher
- Java新手环境搭建 Tomcat安装配置教程
- Java新手环境搭建 JDK8安装配置教程
- IntelliJ IDEA报错Error:java: Compilation failed: internal java compiler error的解决办法
- IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法
- IntelliJ IDEA中折叠所有Java代码,再也不怕大段的代码了
- Java开发工具IntelliJ IDEA安装图解
原文链接:http://blog.csdn.net/renfufei/article/details/52621034
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
相关文章
- 这篇文章主要介绍了spring快速入门实例,主要分析了spring的基本配置与控制反转,对于spring的学习具有一定的参考借鉴价值,需要的朋友可以参考下
2014-12-12
- 这篇文章主要介绍了Java多线程编程实现socket通信示例代码,详细介绍了tcp、udp协议,以及基于socket的Java网络编程的相关内容及代码示例,代码测试可用,供大家参考。
2017-10-10
spring+springmvc整合mabytis时mapper注入失败问题解决方法
这篇文章主要介绍了spring+springmvc整合mabytis时mapper注入失败问题解决方法 ,需要的朋友可以参考下2017-08-08
- 本文是通过JAVA获取优酷、土豆、酷6、6间房等视频,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2016-10-10
- 今天小编就为大家分享一篇关于Java源码解析HashMap简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
2019-01-01
navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法
今天小编就为大家分享一篇关于navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-12-12
- 这篇文章主要为大家详细介绍了Freemarker采用的的方法生成树形导航菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2017-09-09
- 本篇文章主要介绍了JAVA实现双边决策,介绍了双边决策的实现算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
2016-10-10
Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】
这篇文章主要介绍了Java设计模式之工厂模式,结合实例形式分析了简单工厂、工厂方法、抽象工厂等相关功能、实现与使用方法,需要的朋友可以参考下2018-04-04
- 本篇文章是对Java堆内存的10个要点进行了详细的分析介绍,需要的朋友参考下
2013-05-05
原文地址:https://www.jb51.net/article/126921.htm
如何查找YUM安装的JAVA_HOME环境变量详解的更多相关文章
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- Maya 常用环境变量详解
Maya 常用环境变量详解 前言: Maya 的环境变量让用户可以很方便的自定义 Maya 的功能. 在 Maya 的 Help 帮助文档中有专门的一个章节< Environment Varia ...
- asp.net core环境变量详解
环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境变量在其它文件里面,不多说了,有兴趣的 ...
- 【转】asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境 ...
- PATH环境变量和CLASSPATH环境变量详解
大凡装过JDK的人都知道要安装完成后要设置环境变量,可是为什么要设置环境变量呢?环境变量有什么作用? 1)PATH详解: 计算机安装JDK之后,输入“javac”“java”之类的命令是不能马上被计算 ...
- java环境变量详解---找不到或无法加载主类
默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下环境变量配置为PATH=.;%JAVA_HOME%\binCLASSPATH=.;%JAVA_HOME%\lib\dt.jar ...
- Java环境变量详解
自己总结些再加抄点: 安装JDK后要配置环境变量,主要有三个: 1 JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_04 2 CLASSPATH ->到哪 ...
- Windows下PATH等环境变量详解(转载)
本文转载自http://legend2011.blog.51cto.com/3018495/553255 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念, ...
- Windows系统中path环境变量详解
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示 ...
随机推荐
- 安装gcc-c++报错解决办法
问题 每次安装依赖包gcc-c++的时候,经常会遇到包如下错误 Error: Package: libstdc++-devel--.el7_4..x86_64 (ultra-centos-7.4- ...
- leetcode之有效的括号(20)
题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符 ...
- nginx的 ngx.var ngx.ctx ngx.req
ngx.var 是获取 Nginx 的变量,需要经历字符串 hash.hash 表查找等过程. ngx.ctx 仅仅是一个 Lua table 而已,它的引用存放在 ngx_lua 的模块上下文(ct ...
- python实现生产者消费者模型
生产者消费之模型就是,比如一个包子铺,中的顾客吃包子,和厨师做包子,不可能是将包子一块做出来,在给顾客吃,但是单线程只能这麽做,所以用多线程来执行,厨师一边做包子,顾客一边吃包子,当顾客少时,厨师做的 ...
- USB驱动程序涉及的概念及框架
引入:当我们把一个USB设备接入PC机时,会出现什么样的现象? 现象:把USB设备接到PC1.右下角弹出“发现android phone”2.跳出一个对话框,提示你安装驱动程序 首先来看一下,USB驱 ...
- python基础之六:编码简介以及python3中的编码
1.常见的四种编码方式的编码过程: ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字 ...
- .Net反射-TypeDescriptor
.Net中提供了两种方式访问类型的元数据:System.Reflection命名空间中提供的反射API和TypeDescriptor类.反射适用于所有类型的常规机制,它为类型返回的信息是不可扩展的,因 ...
- 37 树莓派识别opencv-dnn
https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry-pi-using-opencv-dnn-98827255fa60 ...
- jvm堆、栈、String常量池
原文地址:http://blog.csdn.net/tophawk/article/details/78704074 程序计数器:它的生命周期与线程相同,线程私有.较小的内存区域,用以完成分支.循环. ...
- vue动态添加路由,跳转页面时,页面报错路由重复:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: "Login", path: "/login" }
之前用了一个vue-element-admin做了一个小项目,里面用到了动态添加路由,动态展示侧边栏, 当我切换页面时,控制台总是警告提示路由重复,连续跳转几次页面后,控制台就被这些警告占满了, 于是 ...