JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
问题描述:
在Linux系统中运行java服务时提示没有java环境,或者版本过低时需要升级JDK
解决问题方法(下面运行环境为Linux centos系统):
1、如果系统中存在自带openjdk和低版本jdk时,需要先移除已存在的jdk版本。可先用以下命令来查看已存在的jdk版本。
$ java -version
出现以下内容系统自带openjdk:
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)
现在要将已存在jdk进行移除。
$ rpm -qa | grep java #查看已完成的jdk包
输出如下:
java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
tzdata-java-2019b-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
#.noarch文件可以不做删除
$ rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64 #删除第一个jdk包
$ rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64 #删除第二个包
$ rpm -qa | grep java #执行命令验证是否删除
# --nodeps 为不删除其依赖包 -e为删除rpm包
2、验证是否删除自带jdk
$ java -version #输入java命令提示未找到此文件或目录表示卸载完成
-bash: /usr/bin/java: No such file or directory
3、将下载好的jdk包上传到服务器,开始安装新版本jdk,本次以jdk1.8为例。
新建一个以Java1.8为命名的目录(可选择性创建,此处创建是为了以后容易辨别文件包位置):
$ makedir -p java1.8 #创建目录
$ mv /jdk-8u191-linux-x64.tar.gz /java1.8/ #将上传的jdk包移到创建的目录下,由于我上传的是根目录下所以我的路径是/下的 mv path/filename to_path
$ tar -zxvf jdk-8u191-linux-x64.tar.gz #解压安装包
此时在当前目录下会得到一个jdk文件夹
4、编辑配置文件
$ vim /etc/profile
#在配置文件末尾添加以下内容
# Java Path #此处为注释,说明以下内容为java环境变量,可有可无
JAVA_HOME=/java1.8/jdk1.8.0_191 #此处为解压后jdk软件包的绝对路径,安装的位置不同而不同
CLASSPATH=$JAVA_HOME/lib/ #以下三行为固定格式,都一样。
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
5、执行以下命令使配置生效
$ source /etc/profile
假如上面命令执行报错,可以特殊情况使用
locate source /etc/profile
6、验证安装是否完成
$ java -version
输出以下内容则完成安装
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
使用以下命令正常输出则功能可用。
$ java
$ javac
若需要jdk版本请在下方评论。