You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Linux 9 Docker容器中Amazon Corretto 11安装异常求助

在Oracle Linux 9中安装Amazon Corretto 11时出现"文件不存在"错误的排查与解决

尝试在Oracle Linux 9中通过脚本安装Amazon Corretto 11,脚本执行后提示bash.sh: line 23: /usr/java/amazon-corretto-11.0.22.7.1-linux-x86/bin/java: No such file or directory,但该文件实际存在。

问题根源

你的脚本使用uname -i检测架构,在Oracle Linux 9的64位系统中,uname -i可能返回i386或i686,导致脚本下载了32位版本的Corretto。而Oracle Linux 9默认是64位系统,无法直接运行32位二进制文件——即使文件存在,系统也会因架构不兼容或缺少32位运行时依赖,抛出"找不到文件"的错误。

解决方案

1. 修正脚本的架构检测逻辑

将脚本中的架构检测部分替换为uname -m,它会准确返回64位系统的架构标识x86_64:

# 替换原有的架构检测代码
os_arch_lower=$(uname -s | tr '[:upper:]' '[:lower:]')
os_arch=$(uname -m | tr '[:upper:]' '[:lower:]')

修正后的完整脚本:

#! /bin/bash

java_version=11.0.22.7.1

# 检测系统类型和架构(修正版)
os_arch_lower=$(uname -s | tr '[:upper:]' '[:lower:]')
os_arch=$(uname -m | tr '[:upper:]' '[:lower:]')
echo "系统类型: $os_arch_lower"
echo "系统架构: $os_arch"

# 创建目标目录
mkdir -p /usr/java/

# 下载并安装Corretto
curl -LO https://corretto.aws/downloads/resources/${java_version}/amazon-corretto-${java_version}-${os_arch_lower}-${os_arch}.tar.gz \
&& mv "amazon-corretto-${java_version}-${os_arch_lower}-${os_arch}.tar.gz" "/usr/java/" \
&& cd /usr/java \
&& tar zxvf "amazon-corretto-${java_version}-${os_arch_lower}-${os_arch}.tar.gz" \
&& export JAVA_HOME="/usr/java/amazon-corretto-${java_version}-${os_arch_lower}-${os_arch}" \
&& export PATH="$JAVA_HOME/bin:$PATH" \
&& java --version

2. 验证现有文件的兼容性(可选)

如果不想重新下载,可通过ldd命令检查现有java二进制文件的依赖情况:

ldd /usr/java/amazon-corretto-11.0.22.7.1-linux-x86/bin/java

若输出中出现not found的条目,说明缺少32位系统库。由于Oracle Linux 9对32位支持有限,建议直接替换为64位版本的Corretto。

3. 清理旧文件并重新安装

先删除已下载的32位文件:

rm -rf /usr/java/amazon-corretto-11.0.22.7.1-linux-x86*

再运行修正后的脚本即可完成64位Corretto的安装。

内容的提问来源于stack exchange,提问作者Krishnadhas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:52:53