一个计算机技术爱好者与学习者

0%

全平台安装JDK(Java开发环境)

1. 前言

经常需要安装JDK(Java Development Kit,Java开发环境),本文就对常用系统的JDK安装方法做一个汇总,具体包括Windows、MacOS、Ubuntu和CentOS。

2. JDK下载地址

3. Windows

1、下载exe文件
本节选择下载jdk-8u111-windows-x64.exe

2、双击安装jdk,按照提示一步一步安装即可
假设安装目录为C:\Program Files\Java\jdk1.8.0_111C:\Program Files\Java\jre1.8.0_111

3、添加环境变量JAVA_HOMEC:\Program Files\Java\jdk1.8.0_111

4、在环境变量Path中添加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

5、添加环境变量CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

6、在DOS命令行窗口输入javac,输出帮助信息即为配置正确

4. MacOS

4.1. 安装JDK14.0

1、下载dmg文件并安装
本节选择下载jdk-14.0.1_osx-x64_bin.dmg

2、配置环境变量
编辑 ~/.bash_profile 文件,添加jdk相关配置

1
2
3
4
5
6
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
PATH=$JAVA_HOME/bin:$PATH:.
export JAVA_HOME
export CLASSPATH
export PATH

3、测试安装

1
2
source ~/.bash_profile
java -version

4.2. 卸载JDK14.0

1、查看jdk安装路径

1
2
echo $JAVA_HOME
ls /Library/Java/JavaVirtualMachines/

2、删除jdk

1
2
cd /Library/Java/JavaVirtualMachines/
sudo rm -rf jdk-14.0.2.jdk

注意,这里不能给jdk-14.0.2.jdk重命名而不删除,因为/usr/bin/java会自动发现最新版的jdk并关联。

3、删除环境变量
编辑 ~/.bash_profile 文件,删除jdk相关配置。

4、测试卸载

1
java -version

参考文档:

4.3. 安装JDK1.8

1、下载dmg文件并安装
本节选择下载jdk-8u161-macosx-x64.dmg

2、配置环境变量
编辑 ~/.bash_profile 文件,添加jdk相关配置

1
2
3
4
5
6
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
PATH=$JAVA_HOME/bin:$PATH:.
export JAVA_HOME
export CLASSPATH
export PATH

3、测试安装

1
2
source ~/.bash_profile
java -version

4.4. 卸载JDK1.8

1、查看jdk安装路径

1
2
echo $JAVA_HOME
ls /Library/Java/JavaVirtualMachines/

2、删除jdk

1
2
cd /Library/Java/JavaVirtualMachines/
sudo rm -rf jdk1.8.0_161.jdk

3、删除jdk相关文件

1
2
sudo rm -rf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"
sudo rm -rf "/Library/PreferencePanes/JavaControlPanel.prefpane"

4、删除环境变量
编辑 ~/.bash_profile 文件,删除jdk相关配置。

5、测试卸载

1
java -version

参考文档:

5. Ubuntu/CentOS

1、下载jdk8u161

1
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz

从oracle官网下载jdk比较麻烦,可以选择从镜像站下载。

2、解压到jvm目录

1
2
mkdir -p /usr/lib/jvm
tar -xzvf jdk-8u161-linux-x64.tar.gz -C /usr/lib/jvm/

3、配置JAVA_HOME和JRE_HOME,vi /etc/profile,在最后添加:

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后使配置文件生效,source /etc/profile。

4、测试jdk是否配置成功。

1
2
3
java -version
java
javac

6. CentOS独有方法(不推荐)

CentOS中安装JDK,除了可以自己下载安装包进行安装之外,还可以使用yum命令,下面是安装配置流程。

1、删除自带jdk

1
rpm -e --nodeps `rpm -qa | grep java`

2、查看yum库中有哪些jdk版本。

1
yum search java | grep jdk

3、选择java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment版本进行安装。

1
yum install java-1.8.0-openjdk-devel.x86_64

默认安装目录为/usr/lib/jvm/,其中的文件包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

java -> /etc/alternatives/java_sdk

java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0

java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk

java-openjdk -> /etc/alternatives/java_sdk_openjdk

jre -> /etc/alternatives/jre

jre-1.8.0 -> /etc/alternatives/jre_1.8.0

jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk

jre-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 -> java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre

jre-openjdk -> /etc/alternatives/jre_openjdk

第一个是真实目录,其他的全部都是软链接,指向/etc/alternatives/目录下的文件。
有意思的是,查看/etc/alternatives/目录,里面居然也是软链接,而且指回了/usr/lib/jvm/目录!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/etc/alternatives/java_sdk -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

/etc/alternatives/java_sdk_1.8.0 -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

/etc/alternatives/java_sdk_1.8.0_openjdk -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

/etc/alternatives/java_sdk_openjdk -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

/etc/alternatives/jre -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre

/etc/alternatives/jre_1.8.0 -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre

/etc/alternatives/jre_1.8.0_openjdk -> /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

/etc/alternatives/jre_openjdk -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
......

而且,所有的java_sdk,都指向是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64;所有的jre,都指向/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre。jre_1.8.0_openjdk是个例外,也许是软件的错误。

综上,/usr/lib/jvm/目录中的java、java-1.8.0、java-1.8.0-openjdk、java-openjdk、java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64是等价的,在配置JAVA_HOME的时候可以任选其一。

4、配置全局变量

1
vim /etc/profile

在最后添加:

1
2
3
4
5
6
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

5、让修改立即生效

1
source /etc/profile

6、查看安装结果

1
2
3
java -version
java
javac

7. Dockerfile

1、下载jdk-8u161-linux-x64.tar.gz到当前目录

2、编写Dockerfile

1
2
3
4
5
6
FROM python:3.7.10-slim-buster
ADD jdk-8u161-linux-x64.tar.gz /usr/lib/jvm/
ENV JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

3、生成包含java环境的镜像

1
docker built -t python:3.7.10-slim-buster-java1.8 .