在CentOs上删除OpenJDK安装Oracle JDK(解决OpenJdk没有./bin/java文件问题)

场景:

 在阿里云CentOS7上安装了OpenJdk 可是启动Tomcat 时报错,日志:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/java: No such file or directory

 也就是缺少 "./bin/java "  文件夹和文件。 找了一些解决方法,都比较复杂。最后忍痛割爱,还是 删除了openjdk重新安装了 Oracle的Jdk1.8。

下面记录一下删除openjdk,重新安装Oracle Jdk和环境变量配置。

1、删除OpenJdk

      键入 rpm -qa | grep java 命令,删除jdk安装文件。

rpm是管理套件命令,-qa表示使用询问模式查询所有套件;grep表示查询文件里符合条件的字符串;java表示查询包含java的字符串

 注意:以上文件中,.noarch文件不用删除。

下面执行删除命令: rpm -e --nodeps java文件地址:

最后,使用 java -version 测试一下是否删除成功即可。No such file or directory 表示删除成功 。

 2、获取 Oracle jdk1.8

CentOS中使用直接wget命令下载JDK

wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz

下载成功后,目录会用一个 .tar.gz包。

这是在 /root 目录下,我们使用 mv 命令将 jdk 复制到 /opt 目录下,

mv jdk-8u201-linux-x64.tar.gz ../opt/jdk-8u201-linux-x64.tar.gz 

解压压缩包:tar -zxvf jdk-8u201-linux-x64.tar.gz 

tar -zxvf jdk-8u201-linux-x64.tar.gz

 修改 jdk1.8.0_201 文件夹所有用户权限,

chmod 755 jdk1.8.0_201/

说明一下:为什么要复制到 /opt目录下,因为我们是用root用户安装操作的,其他用户是没有root用户权限的。当其他的用户登录是无法使用的,比如一个其他的普通用户 geiri 登录后,输入java -version 是无效的,或者该用户去启动一个该用户下的tomcat 也是不行的,但是root用户是正常的。

3、配置环境变量

 输入  vim /etc/profile 编辑全局变量文件profile。

vim /etc/profile 

vim 是文本编辑命令,进入文本编辑状态后,按 insert 按键进入编辑状态。然后在 unset 前 增加 JAVA_HOME, CLASSPATH, PATH 等环境变量的配置(说明一下,不同的jdk版本,CLASSPATH 中依赖的 jar 是不一样的,这里要注意一下 )。

#java enviromen

export JAVA_HOME=/opt/jdk1.8.0_201

export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

export PATH=$PATH:${JAVA_HOME}/bin

编辑完成后,按下 Esc退出编辑状态,然后 shift + ; 退出文本查看,在 后输入 wq!保存退出即可。

之后输入 source /etc/profile是让刚设置的环境生效:

 source /etc/profile

java -version 查看环境是否生效

到此安装配置全部完成了。


一般生产线上使用的是Oracle的java,因为这样配置的java环境更全,功能会更多

1、授权协议的不同

OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。

OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。

2、OpenJDK源代码不完整

这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。

3、Open Jdk更为精简化

OpenJDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。 这可能导致yum安装的java环境没有jar命令

4、版本显示

OpenJDK不能使用Java商标,这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK,

但是如果是使用Oracle安装的java,显示的是Java(TM)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值