jdk-17.0.10_linux-x64_bin.tar.gz 是x64架构的JDK,但目标系统是aarch64架构。这两者不兼容!
建议:请下载适合aarch64架构的JDK版本:jdk-17.0.10_linux-aarch64_bin.tar.gz
- 确认系统架构:
uname -m应该显示 aarch64
- 检查当前Java版本(如有):
java -version如果您还没有下载,请下载aarch64版本:
- 访问Oracle官网或OpenJDK官网
- 下载
jdk-17.0.10_linux-aarch64_bin.tar.gz
# 以root权限创建Java安装目录
sudo mkdir -p /usr/local/java# 进入下载目录(假设在用户主目录的Downloads文件夹)
cd ~/Downloads
# 解压到安装目录
sudo tar -xzf jdk-17.0.10_linux-aarch64_bin.tar.gz -C /usr/local/java
# 创建符号链接便于版本管理
sudo ln -s /usr/local/java/jdk-17.0.10 /usr/local/java/current# 编辑系统环境变量文件
sudo vi /etc/environment添加以下内容:
JAVA_HOME=/usr/local/java/current
PATH=$JAVA_HOME/bin:$PATH# 编辑用户的bash配置文件
vi ~/.bashrc在文件末尾添加:
export JAVA_HOME=/usr/local/java/current
export PATH=$JAVA_HOME/bin:$PATH# 全局设置需要重启或重新登录
# 用户级别设置执行:
source ~/.bashrc# 检查Java版本
java -version
# 检查Java编译器版本
javac -version
# 检查Java安装路径
echo $JAVA_HOME
# 检查which java
which java应该显示类似以下内容:
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-1ubuntu1, mixed mode, sharing)
麒麟系统对权限管理较为严格,确保:
- 使用
sudo执行需要管理员权限的操作 - 检查
/usr/local/java目录权限
如果需要Java应用监听端口:
# 查看防火墙状态
sudo ufw status
# 开放特定端口(以8080为例)
sudo ufw allow 8080- 确保系统已安装必要的依赖包
- 某些Java应用可能需要额外的字体包
# 删除安装目录
sudo rm -rf /usr/local/java/jdk-17.0.10
# 删除符号链接
sudo rm -f /usr/local/java/current
# 清理环境变量(编辑相应的配置文件删除相关行)如果您已经安装了x64版本,会出现如下错误:
bash: /usr/local/java/current/bin/java: 无法执行二进制文件: 可执行文件格式错误
解决方案:
- 删除错误安装的JDK
- 重新下载aarch64版本
- 按照上述步骤重新安装
如果出现权限拒绝错误:
# 修改目录权限
sudo chown -R root:root /usr/local/java
sudo chmod -R 755 /usr/local/java- 检查配置文件语法是否正确
- 确认已重新加载环境变量
- 尝试重启系统
安装完成后,请确认以下项目:
-
java -version显示正确版本信息 -
javac -version显示编译器版本 -
echo $JAVA_HOME显示正确路径 -
which java指向正确的java可执行文件 - 能够编译和运行简单的Java程序
创建测试文件:
cat > HelloWorld.java << EOF
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java 17 on aarch64 Kylin!");
System.out.println("Java Version: " + System.getProperty("java.version"));
System.out.println("Architecture: " + System.getProperty("os.arch"));
}
}
EOF编译并运行:
javac HelloWorld.java
java HelloWorld如果安装正确,应该输出:
Hello, Java 17 on aarch64 Kylin!
Java Version: 17.0.10
Architecture: aarch64
记住:确保使用与您系统架构匹配的JDK版本!