Ubuntu22.04安装IBM CPLEX遇java.lang.ClassNotFoundException错误求助
解决Ubuntu 22.04上CPLEX .bin安装包找不到主类com.zerog.lax.LAX的问题
问题场景
在Ubuntu 22.04系统上运行IBM CPLEX的.bin安装包时,出现以下错误:
Error: Could not find or load main class com.zerog.lax.LAX Caused by: java.lang.ClassNotFoundException: com.zerog.lax.LAX
当前使用的Java版本为:
openjdk 11.0.20.1 2023-08-24 OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04) OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
解决方案
1. 校验安装包完整性
安装包损坏会导致内部JRE或安装资源缺失,先重新下载安装包,若IBM提供哈希校验值,对比确认包的完整性:
# 示例:校验SHA256,替换为实际的哈希值和包名 echo "abcdef123456... cos_installer-12.10.0.0.R0-CC439ML-linux-x86-64.bin" | sha256sum -c
2. 手动指定系统JRE运行安装包
部分.bin安装包自带的JRE与Ubuntu 22.04环境不兼容,尝试用系统已安装的OpenJDK直接运行:
java -jar ./cos_installer-12.10.0.0.R0-CC439ML-linux-x86-64.bin
若仍报错,先手动解压安装包,再指定JRE路径运行:
# 解压安装包到临时目录 ./cos_installer-12.10.0.0.R0-CC439ML-linux-x86-64.bin --extract temp_install_dir # 进入临时目录,用系统JRE运行安装核心程序 cd temp_install_dir java -Djava.ext.dirs=./jre/lib/ext -jar installer.jar
3. 降级Java版本(兼容性适配)
CPLEX 12.10的安装程序对Java 11兼容性有限,可临时切换到OpenJDK 8:
# 安装OpenJDK 8 sudo apt update && sudo apt install openjdk-8-jdk # 切换默认Java版本到8,按提示输入对应编号 sudo update-alternatives --config java # 重新运行安装包 ./cos_installer-12.10.0.0.R0-CC439ML-linux-x86-64.bin
安装完成后,可再次通过sudo update-alternatives --config java切换回Java 11。
4. 检查运行权限
确保当前用户对安装包所在目录有读写权限,必要时用sudo运行(注意:非必要不建议用sudo,避免权限问题):
sudo ./cos_installer-12.10.0.0.R0-CC439ML-linux-x86-64.bin
内容的提问来源于stack exchange,提问作者Lucas Kuratani
相关产品推荐
相关产品推荐

