在阿里云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和环境变量配置。
键入 rpm -qa | grep java 命令,删除jdk安装文件。
rpm是管理套件命令,-qa表示使用询问模式查询所有套件;grep表示查询文件里符合条件的字符串;java表示查询包含java的字符串
注意:以上文件中,.noarch文件不用删除。
下面执行删除命令: rpm -e --nodeps java文件地址:
最后,使用 java -version 测试一下是否删除成功即可。No such file or directory 表示删除成功 。
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用户是正常的。
输入 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)