• java环境配置


    我们在安装一些linux服务的时候,我们经常会看到遇到需要依赖一些java环境,然后我们一般就是安装jdk来解决java环境依赖。但是如果安装服务多了的话,我们就会发现在安装jdk的时候,jdk不止有版本的不同,还有分支的不同。目前我所接触到的jdk分支有oracle jdk和open jdk。可能有时候也会接触到sun jdk。不过sun jdk也是oracle jdk.这里就不做过多解释。

    讲到不同分支的jdk,我这里就讲下java环境,为什么在安装某些Linux服务的时候为什么需要依赖java环境.我这边讲通俗一点就是这些服务或者这些服务中的插件是用java写的,如果要保证服务的运行,就要依赖java环境对其服务的源码进行编译。那为什么会有open jdk 和oracle jdk呢,这是因为他们用的协议不一样,他们的区别可以参考其他资料。我这里就讲一下我的理解,就是oracle jdk有很多特性open jdk没有,导致如果依赖oracle jdk的服务用了open jdk 会导致很多源码不能编译。一句话OpenJDK是Oracle JDK的精简版本。

     1.什么是jdk

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

     JDK包含了一批用于Java开发的组件,其中包括:

    javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
    java:运行工具,运行.class的字节码
    jar:打包工具,将相关的类文件打包成一个文件
    javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
    jdb debugger:调试工具
    jps:显示当前java程序运行的进程状态
    javap:反编译程序
    appletviewer:运行和调试applet程序的工具,不需要使用浏览器
    javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
    javaws:运行JNLP程序
    extcheck:一个检测jar包冲突的工具
    apt:注释处理工具 
    jhat:java堆分析工具
    jstack:栈跟踪程序
    jstat:JVM检测统计工具
    jstatd:jstat守护进程
    jinfo:获取正在运行或崩溃的java程序配置信息
    jmap:获取java进程内存映射信息
    idlj:IDL-to-Java编译器。将IDL语言转化为java文件 
    policytool:一个GUI的策略文件创建和管理工具
    jrunscript:命令行脚本运行

    JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。

     JDK中还包括各种样例程序,用以展示Java API中的各部分。

     2.java环境的部署配置

    那么java环境又该怎么配置呢,这边配置的的方法比较多,比如yum的方式,rpm包的方式,jdk压缩包的方式。下面我就来一一介绍一下。

    1.yum安装

    默认linux系统是自带jdk的,不过是open jdk,所以我这里为了方便,我先卸载系统自带的jdk,然后演示怎么安装。

    我们先看当前系统jdk的版本:java -version

     在看一下已安装的java的软件包:yum list installed | grep java

     接下来我们根据上图中已安装的java软件包把系统自带的jdk版本卸载掉。卸载完在检查一下看有没有卸载成功。

    [root@localhost ~]# yum -y remove java-1.8.0-openjdk*
    输出省略
    [root@localhost ~]# java -version
    -bash: /usr/bin/java: No such file or directory

    从上面的结果,我们看出自带的jdk版本已经卸载成功。接下来就是演示如何用yum安装jdk。提示用yum安装jdk配置java环境的方式,不需要配置环境变量。

    我们先查看我们配置的yum库中java安装包:yum -y list java*

     然后根据yum库里jdk版本,安装自己需要的jdk版本:yum -y install java-1.8.0-openjdk* 。然后检查是否安装成功。

    (安装完成后的默认目录为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/bin/java)

    [root@localhost ~]# yum -y install java-1.8.0-openjdk*
    Loaded plugins: fastestmirror
    Repository base is listed more than once in the configuration
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.232.b09-0.el7_7 will be installed
    ---> Package java-1.8.0-openjdk-accessibility.x86_64 1:1.8.0.232.b09-0.el7_7 will be installed
    --> Processing Dependency: java-atk-wrapper(x86-64) for package: 1:java-1.8.0-openjdk-accessibility-1.8.0.232.b09-0.el7_7.x86_64
    ---> Package java-1.8.0-openjdk-accessibility-debug.x86_64 1:1.8.0.232.b09-0.el7_7 will be installed
    ---> Package java-1.8.0-openjdk-debug.x86_64 1:1.8.0.232.b09-0.el7_7 will be installed
    余下省略
    [root@localhost ~]# java -version
    openjdk version "1.8.0_232"
    OpenJDK Runtime Environment (build 1.8.0_232-b09)
    OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

    从上面的结果我们看出java环境已经配置完成。

    2.RPM包的方式安装

    通过rpm安装之前,我们用上面卸载自带jdk的方式,卸载掉我们yum安装的jdk。上面我们也介绍了,open jdk可能不能达到我们对java环境的依赖需求。这个时候我们就需要安装oracle jdk。那么我们就可以按照自己的需要去这个地址下https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载我们需要的jdk包,通过rpm的方式或者jdk压缩包的方式安装oracle jdk。

     我这里为了方便选择了把接下来的演示jdk压缩包安装方式配置Java环境的包也安装下来的。包下载完成后通过xftp的方式传到我们要配置java环境的服务器下。我这里放到了/devops目录下

     好了,我们先来演示一下rpm包安装的方式:rpm -ivh jdk-8u241-linux-x64.rpm 

    (默认安装在/usr/java目录下,不用配置环境变量)

     安装好我们检查一遍,发现java环境已经配置完成。

    3.rpm安装的方式如何切换版本

    这里我们在介绍一下在平时的生产中通过rpm包安装配置java环境时候,遇到频繁需要切换jdk版本的情况,如果像上面一样先卸载老版本,在安装新版本,这样固然可以,但是过程过于繁琐,有时还可能会因为老版本卸载的不彻底,导致出现各种报错。这里我就介绍一下我常用的方法:

    这里我们到刚刚的jdk安装目录下

     通过上图我们可以看出一个系统中可以安装两个java环境,通过上图中的红框中的软连接就可以指定你需要jdk版本。这里的jdk.1.7.0_80就是我按照上面rpm安装java环境的步骤安装的,不过这里我安装的时候并没有把系统中已经安装的jdk8卸载掉。这里jdk7的安装步骤我这里就不做演示了。这里如果如果想通过更换软连接的方式切换jdk版本,还需要配置全局变量。配置如下:

    [root@centos7 java]# vim /etc/profile.d/jdk.sh 
    [root@centos7 java]# cat /etc/profile.d/jdk.sh 
    export JAVA_HOME=/usr/java/default
    export PATH=$JAVA_HOME/bin:$PATH
    
    [root@centos7 java]#. /etc/profile.d/jdk.sh

    配置完以后,只需要通过切换软链接就可以达到切换java环境版本的需求。如下图。

     ln是创建链接的命令,默认创建硬链接加上-s的选项就可以创建软链接,后面的参数,前面填源文件目录,后面填链接目录。

    4.JDK压缩包的方式安装(生产中个人最推荐的方法,因为可以指定安装目录,也是最稳定的方法

    我们在演示jdk压缩包的方式之前,我们要先把上面通过rpm包的方式安装的JDK包卸载掉,卸载步骤如下,当然实际生产中,根据实际需求来看是否需要卸载。

    查询之前rpm包安装jdk包的名称:rpm -qa|grep jdk

    然后卸载掉查到的jdk包名称:rpm -e --nodeps jdk1.8(这里的- -nodeps参数的作用就是强制删除某个包而不去管他的依赖关系,这里的jdk1.8也可以写jdk全称)

    然后检查java环境是否卸载干净了,上面的几步如下图。

     接下来我们来演示如何jdk压缩包的方式配置java环境,首先我们把压缩包解压到指定的目录下:tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/src/  这里的-C就是指定安装目录

    接下来就是配置环境变量了,有的同学可能想rpm安装的方式可以直接通过软连接的方式切换版本,所以也想到了ln -sv /usr/local/src/jdk1.8.0_241/bin/* /usr/bin/  来进行配置,然后通过java -version也验证成功了。但是需要注意这里其实是没有成功的,因为/usr/bin目录下是系统变量,你这种方式可能会有的服务需要的java库找不到,报一些奇怪的错。所以不建议用这样的方式,一般建议配置环境。配置方式如下。

    使用vim /etc/profile 编辑profile文件 输入: vim /etc/profile

    向文件里面追加以下内容。

    JAVA_HOME=/usr/local/src/jdk1.8.0_241
    JRE_HOME=$JAVA_HOME/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH

    参数注释:

    JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹(tomcat,Eclipse的运行都需要依靠此变量)。如果后面想切换环境变量,只需改这里的路径就可以了。

    CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib。CLASSPATH变量值中的.表示当前目录

    PATH使得系统可以在任何路径下识别java命令,设为:$JAVA_HOME/bin:$JRE_HOME/bin。其在环境变量配置中的作用是预设可执行文件或命令的搜索路径

    export在环境变量配置文件中的作用就是用于声明一个环境变量。
    特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。

    最后使配置文件生效:source /etc/profile ,并检查。

    上面的命令如下图,在日常配置环境java环境变量的时候我们一般建议使用jdk压缩包的方式配置

    [root@localhost devops]# tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/src/
    [root@localhost ~]# vim /etc/profile
    [root@localhost ~]# source /etc/profile
    [root@localhost ~]# java -version
    java version "1.8.0_241"
    Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) 

    3.windows下java环境的配置

    1.下载二进制包

    我们先按自己的需求去这个地址下https://www.oracle.com/java/technologies/javase-downloads.html去选择对应版本的jdk。我们这里选择了jdk8。

     2. 安装过程

    双击刚刚下载的可执行文件,默认安装即可,但要记住刚刚安装的路径,待会配置环境变量需要用到。

     安装过程中会弹出更改”目录文件夹”窗口。注意:如果长时间安装程序没有反应,需要特别注意,可能是弹出窗口被挡,需要移动主窗口查看是否已经有窗口弹出。

    修改JRE安装目录(注意,不能选择JDK的安装文件夹[jdk1.8.0_251],最好在JDK安装文件夹同级目录下新建)后,如下图单击”下一步”,开始安装JRE

     出现下面的界面,表示安装成功

     接下来就是配置环境变量了,右击"我的电脑"-"属性"-"高级系统设置"-"环境变量",如下图步骤进

    3.配置环境变量

    新建一个系统环境变量:

    变量名:JAVA_HOME

    变量值:刚刚JAVA的安装目录

     在”系统变量”选项区域中查看”CLASSPATH”变量,如果不存在,则新建变量”CLASSPATH”,否则选中该变量,单击”编辑”按钮,在”变量值”文本框的起始位置添加”.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;”, 单击”确定”, 如下图所示

     在”系统变量”选项区域中查看”PATH”变量,如果不存在,则新建变量”PATH”,否则选中该变量,单击”编辑”按钮,在”变量值”文本框的起始位置添加”%JAVA_HOME%in;%JAVA_HOME%jrein;”    单击”确定”, 如下图所示

     4.验证

    单击”确定”,关闭”环境变量”及”系统属性”,接下来验证,在DOS命令行窗口输入”JAVAC”,测试环境变量的配置成功与否。输出帮助信息即为配置正确,如下图所示

  • 相关阅读:
    移动端常用状态
    css 动画
    jQuery源码解析 -- 概述
    Bearer Token && JWT --- 深入理解令牌机制
    字符串 ----> switch-case 语句
    Vuejs选项: provide/inject
    本地windows系统-》windows云服务器文件上传
    CSS基础点
    函数的调用 与 this
    两个有意思的网站
  • 原文地址:https://www.cnblogs.com/qingbaizhinian/p/12201073.html
Copyright © 2020-2023  润新知