java环境

咱们在安装一些linux服务的时候,咱们常常会看到遇到须要依赖一些java环境,而后咱们通常就是安装jdk来解决java环境依赖。可是若是安装服务多了的话,咱们就会发如今安装jdk的时候,jdk不止有版本的不一样,还有分支的不一样。目前我所接触到的jdk分支有oracle jdk和open jdk。可能有时候也会接触到sun jdk。不过sun jdk也是oracle jdk.这里就不作过多解释。html

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

 1.什么是jdk

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

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

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库等等。vim

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

 

 2.java环境的部署配置

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

1.yum安装

默认linux系统是自带jdk的,不过是open jdk,因此我这里为了方便,我先卸载系统自带的jdk,而后演示怎么安装。浏览器

咱们先看当前系统jdk的版本:java -versiontomcat

 

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

 

 接下来咱们根据上图中已安装的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 -versionjava 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)
相关文章
相关标签/搜索