CentOS 7.2 yum安装JDK路径查找

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.2 yum安装JDK路径查找相关的知识,希望对你有一定的参考价值。

参考技术A 使用 yum list -y java* 查看可用版本,执行 yum install -y java-1.8.0-openjdk* 安装。

执行 whereis javac ,得到如下输出:

一般来说 /usr/bin 默认加入了 PATH 路径,所以可以直接执行。

然后一路跟踪,看软连接指向的位置( ll 是 ls -l 的快捷命令):

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/bin/javac
不再是软连接,也即JAVA_HOME 的值。

参考

CentOS 下配置JDK

从官网上下载jdk到系统中,并解压好

tar –axvf jdk.tr.gz

 

  1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。

 

  2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

 

  3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

 

四. 三种配置环境变量的方法

 

  1. 修改/etc/profile文件

 

    如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

 

    •用文本编辑器打开/etc/profile

    •在profile文件末尾加入:

 

      JAVA_HOME=/usr/share/jdk1.5.0_05

      PATH=$JAVA_HOME/bin:$PATH

      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

      export JAVA_HOME

      export PATH

      export CLASSPATH

 

    •重新登录或者 source /etc/profile

    •注解

      a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目录

      b. linux下用冒号“:”来分隔路径

      c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值

        在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种

        常见的错误。

      d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。

      e. export是把这三个变量导出为全局变量。

      f. 大小写必须严格区分。

 

  2. 修改.bashrc文件

    

    这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。

 

    •用文本编辑器打开用户目录下的.bashrc文件

本身如果是进入的图形界面的话是看不到该文件的,按住Ctrl+h用来显示隐藏文件可以通过文本编辑器打开,也可以通过Vi打开来修改

    •在.bashrc文件末尾加入:

      

      set JAVA_HOME=/usr/share/jdk1.7.0_25

      export JAVA_HOME

      set PATH=$JAVA_HOME/bin:$PATH

            export PATH

            set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

            export CLASSPATH

 

    •重新登录

通过命令

source ~/.bashrc

使之生效

 

  3. 直接在shell下设置变量

 

    不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。

 

    只需在shell终端执行下列命令:

 

    export JAVA_HOME=/usr/share/jdk1.5.0_05

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这样就配置好了jdk的环境变量..通过终端敲入

[email protected]:~$ java -version

java version "1.6.0_27"

OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1)

OpenJDK Server VM (build 20.0-b12, mixed mode)

[email protected]:~$

这样还没有真正意义上完成jdk的配置,都应该知道系统中有一套openJdk是系统默认的所以

会显示目前系统中的java环境可以看到系统默认的环境还是1.6版本的..也就是不是我刚才安装的1.7版本的..再往后看可以发现该java所在的包为OpenJDK

 

后面的工作就是不用系统默认的openJdk了..而是用我们配置好的jdk

4.配置默认JDK

由于一些Linux的发行版中已经存在默认的JDK,如OpenJDK等。所以为了使得我们刚才安装好的JDK版本能成为默认的JDK版本,我们还要进行下面的配置。

执行下面的命令:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk7/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk7/bin/javac 300

 注意:如果以上两个命令出现找不到路径问题,只要重启一下计算机在重复上面两行代码就OK了。

在命令行中敲入:sudo update-alternatives --config java终端会显示如下文字

sudo update-alternatives --config java

有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

 

  选择       路径                                         优先级  状态

------------------------------------------------------------

* 0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      自动模式

  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      手动模式

  2            /usr/share/jdk1.7.0_25/bin/java                 300       手动模式

 

要维持当前值[*]请按回车键,或者键入选择的编号:

 

这样你就可以通过选择2号来完成系统默认java版本的设置,这样就搞定了..至于测试我是觉得没什么必要,因为你只需要在终端中打入javac 和java命令看看有没有帮助信息出现就可以了..不妨试试?:

[email protected]:~$ javac

用法:javac <选项> <源文件>

其中,可能的选项包括:

  -g                         生成所有调试信息

  -g:none                    不生成任何调试信息

  -g:{lines,vars,source}     只生成某些调试信息

  -nowarn                    不生成任何警告

  -verbose                   输出有关编译器正在执行的操作的消息

  -deprecation               输出使用已过时的 API 的源位置

  -classpath <路径>            指定查找用户类文件和注释处理程序的位置

  -cp <路径>                   指定查找用户类文件和注释处理程序的位置

  -sourcepath <路径>           指定查找输入源文件的位置

  -bootclasspath <路径>        覆盖引导类文件的位置

  -extdirs <目录>              覆盖安装的扩展目录的位置

  -endorseddirs <目录>         覆盖签名的标准路径的位置

  -proc:{none,only}          控制是否执行注释处理和/或编译。

  -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程

  -processorpath <路径>        指定查找注释处理程序的位置

  -d <目录>                    指定存放生成的类文件的位置

  -s <目录>                    指定存放生成的源文件的位置

  -implicit:{none,class}     指定是否为隐式引用文件生成类文件

  -encoding <编码>             指定源文件使用的字符编码

  -source <版本>               提供与指定版本的源兼容性

  -target <版本>               生成特定 VM 版本的类文件

  -version                   版本信息

  -help                      输出标准选项的提要

  -Akey[=value]              传递给注释处理程序的选项

  -X                         输出非标准选项的提要

  -J<标志>                     直接将 <标志> 传递给运行时系统

  -Werror                    Terminate compilation if warnings occur

 

[email protected]:~$

 

java运行环境正常@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

[email protected]:~$ javac

用法:javac <选项> <源文件>

其中,可能的选项包括:

  -g                         生成所有调试信息

  -g:none                    不生成任何调试信息

  -g:{lines,vars,source}     只生成某些调试信息

  -nowarn                    不生成任何警告

  -verbose                   输出有关编译器正在执行的操作的消息

  -deprecation               输出使用已过时的 API 的源位置

  -classpath <路径>            指定查找用户类文件和注释处理程序的位置

  -cp <路径>                   指定查找用户类文件和注释处理程序的位置

  -sourcepath <路径>           指定查找输入源文件的位置

  -bootclasspath <路径>        覆盖引导类文件的位置

  -extdirs <目录>              覆盖安装的扩展目录的位置

  -endorseddirs <目录>         覆盖签名的标准路径的位置

  -proc:{none,only}          控制是否执行注释处理和/或编译。

  -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程

  -processorpath <路径>        指定查找注释处理程序的位置

  -d <目录>                    指定存放生成的类文件的位置

  -s <目录>                    指定存放生成的源文件的位置

  -implicit:{none,class}     指定是否为隐式引用文件生成类文件

  -encoding <编码>             指定源文件使用的字符编码

  -source <版本>               提供与指定版本的源兼容性

  -target <版本>               生成特定 VM 版本的类文件

  -version                   版本信息

  -help                      输出标准选项的提要

  -Akey[=value]              传递给注释处理程序的选项

  -X                         输出非标准选项的提要

  -J<标志>                     直接将 <标志> 传递给运行时系统

  -Werror                    Terminate compilation if warnings occur

 

[email protected]:~$

 

javac编译环境正常@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

[email protected]:~$ java -version

java version "1.7.0_25"

Java(TM) SE Runtime Environment (build 1.7.0_25-b15)

Java HotSpot(TM) Server VM (build 23.25-b01, mixed mode)

[email protected]:~$ ^C

 

通过java -version可以看出默认的java环境已经变成了我刚才配置的jdk1.7版本..

这样linux下配置jdk的工作就算完成了...

 

以上是关于CentOS 7.2 yum安装JDK路径查找的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7 yum安装jdk并查找JAVA_HOME

CentOs安装jdk

CentOs安装jdk

Centos 6.5中使用yum安装jdk

如何在 CentOS 7.2 上使用 yum 安装 gcc 5.3?

CentOS 7.2 yum方式安装MySQL 5.7