ONEKEY——安装JDK1.8
# 1、前提条件
在安装 JDK 之前,请确保系统满足以下要求:
提示
操作系统:Linux(适用于其他操作系统,安装步骤略有不同)
权限要求:必须有 sudo
权限
网络要求:需要网络连接,用于下载 JDK 安装包
# 2、JDK 8 安装步骤
# 2.1 下载 JDK 安装包
从官网下载 JDK 8 安装包,或者使用国内镜像源下载。以下是国内镜像源链接:
- JDK 8 下载链接: Huawei Cloud JDK 8u202 下载链接 (opens new window)
# 2.2 解压 JDK 安装包
将下载的 JDK 安装包解压到指定目录:
#!/bin/bash
# 设置变量
JDK_FILE_PATH="/opt/modules/jdk-8u202-linux-x64.tar.gz"
JDK_INSTALL_DIR="/opt/modules/jdk1.8.0_202"
# 解压安装包
echo "Extracting JDK installation package..."
tar -zxvf "$JDK_FILE_PATH" -C "$JDK_INSTALL_DIR"
# 验证 JDK 是否成功解压
if [ $? -eq 0 ]; then
echo "JDK installed successfully."
else
echo "JDK installation failed."
exit 1
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2.3 配置环境变量
配置 JAVA_HOME
和 PATH
环境变量,使系统能正确识别 JDK:
#!/bin/bash
# 配置 JAVA_HOME 和 PATH
echo "Configuring JAVA_HOME and PATH..."
echo "export JAVA_HOME=${JDK_INSTALL_DIR}" | sudo tee -a /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/profile
# 使配置生效
source /etc/profile
# 验证环境变量配置
echo "JAVA_HOME is set to: $JAVA_HOME"
echo "PATH is set to: $PATH"
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 2.4 验证 JDK 安装
安装完成后,可以通过以下命令检查 JDK 是否安装成功:
java -version
javac -version
1
2
2
如果安装成功,您将看到类似以下的输出:
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
1
2
3
2
3
笔记
如果出现类似的版本信息,说明 JDK 安装成功!
# 3、配置 update-alternatives
如果您的系统有多个版本的 Java,您可以使用 update-alternatives
来切换 JDK 版本:
# 安装 JDK 到 alternatives
sudo update-alternatives --install /usr/bin/java java ${JDK_INSTALL_DIR}/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac ${JDK_INSTALL_DIR}/bin/javac 2
# 配置默认 Java 版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
1
2
3
4
5
6
7
2
3
4
5
6
7
# 3.1 切换 Java 版本
执行 update-alternatives
后,您会看到一个菜单,选择您需要的 Java 版本即可。
# 4、总结
通过以上步骤,您已成功安装并配置了 JDK 8。在 Linux 系统中,JDK 8 的安装过程相对简单,只需要下载、解压并配置环境变量即可。如果有多个 Java 版本,您可以使用 update-alternatives
来进行版本管理。
注意
注意:确保安装路径和环境变量正确配置,否则可能会导致 Java 无法识别。
如有任何问题或需要进一步的帮助,请随时提出!
# 一键安装脚本
以下是 JDK 8 安装的一键安装脚本,可以自动化完成 JDK 下载、安装和配置环境变量。
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Author: JaneTTR
set -ex
###########JDK_INIT start
echo "############## SETUP JDK_INIT start #############"
# JDK path and URL
JDK_FILE_PATH="/opt/modules/jdk-8u202-linux-x64.tar.gz"
JDK_FILE_HOME_PATH="/opt/modules/jdk1.8.0_202"
JDK_DOWNLOAD_URL="https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz"
JDK_FILE_PATH_LOCK="/data/.setup_jdk.lock"
TAR_LOCK="/data/.setup_jdk_tar.lock"
mkdir -p /data
# 解压缩函数
extract_tar_gz() {
local file_path=$1
local dest_dir=$2
if [ -f "$TAR_LOCK" ]; then
return
else
touch $TAR_LOCK
fi
echo "Extracting file $file_path to directory $dest_dir..."
tar -zxvf "$file_path" -C "$dest_dir"
if [ $? -eq 0 ]; then
echo "File extracted successfully: $dest_dir"
else
echo "File extraction failed"
exit 1
fi
rm -f $TAR_LOCK
}
# 配置 JAVA_HOME 函数
configure_java_home() {
# 使用 sed 命令更新或添加 JAVA_HOME 变量
if grep -q "^export JAVA_HOME=" /etc/profile; then
sudo sed -i "s#^export JAVA_HOME=.*#export JAVA_HOME=${JDK_FILE_HOME_PATH}#" /etc/profile
else
echo "export JAVA_HOME=${JDK_FILE_HOME_PATH}" | sudo tee -a /etc/profile
fi
# 更新 PATH 变量以包含 JAVA_HOME/bin
if ! grep -q "^export PATH=.*\$JAVA_HOME/bin" /etc/profile; then
echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/profile
fi
# 重新加载 /etc/profile 文件以应用更改
source /etc/profile
# 验证 JAVA_HOME 设置
echo "JAVA_HOME is set to: $JAVA_HOME"
}
# 检查并下载 JDK 文件
check_and_download_jdk() {
if [ -f "$JDK_FILE_PATH" ]; then
echo "JDK file exists: $JDK_FILE_PATH"
elif [ -f "$JDK_FILE_PATH_LOCK" ]; then
echo "Other instance downloading..."
else
touch $JDK_FILE_PATH_LOCK
echo "openjdk file does not exist, downloading..."
mkdir -p "$(dirname "$JDK_FILE_PATH")"
curl -o "$JDK_FILE_PATH" "$JDK_DOWNLOAD_URL"
if [ $? -eq 0 ]; then
echo "openjdk download success: $JDK_FILE_PATH"
extract_tar_gz "$JDK_FILE_PATH" "/opt/modules"
else
echo "openjdk download failed!!"
rm -f $JDK_FILE_PATH_LOCK
exit 1
fi
rm -f $JDK_FILE_PATH_LOCK
fi
while [ -f "$JDK_FILE_PATH_LOCK" ]; do
echo "Waiting for the lock to be released..."
sleep 1
done
echo "Lock released. Continuing..."
}
# 添加并配置 update-alternatives
configure_update_alternatives() {
sudo update-alternatives --install /usr/bin/java java ${JDK_FILE_HOME_PATH}/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac ${JDK_FILE_HOME_PATH}/bin/javac 2
sudo update-alternatives --set java ${JDK_FILE_HOME_PATH}/bin/java
sudo update-alternatives --set javac ${JDK_FILE_HOME_PATH}/bin/javac
# 验证 Java 版本
java -version
}
main() {
check_and_download_jdk
if [ -d "$JDK_FILE_HOME_PATH" ]; then
echo "JDK home exists: $JDK_FILE_HOME_PATH"
else
extract_tar_gz "$JDK_FILE_PATH" "/opt/modules"
fi
configure_java_home
configure_update_alternatives
}
main
###########JDK_INIT end
echo "############## SETUP JDK_INIT end #############"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# 使用说明:
- 将脚本保存为
install_jdk.sh
。 - 给脚本添加执行权限:
chmod +x install_jdk.sh
。 - 运行脚本进行 JDK 安装:
./install_jdk.sh
。
# 脚本功能:
- 自动下载 JDK 8 安装包:如果本地没有 JDK 文件,会自动下载并解压。
- 配置 JAVA_HOME 和 PATH:配置
JAVA_HOME
环境变量并更新PATH
。 - 一键安装:通过执行一条命令即可完成 JDK 安装和配置,简化安装过程。