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

Ubuntu安装最新版Maven报错重启后版本不生效问题求解

Ubuntu系统Java17环境下Maven运行异常修复方案

问题根因

  • 初始执行mvn clean install抛出Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper错误,核心原因是Ubuntu apt源默认预装的Maven 3.6.3版本内置的cglib、guice组件不兼容Java 17,必须升级到Maven 3.8.1及以上版本才能正常适配。
  • 手动安装过程中出现uname: not found、dirname: not found以及ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher报错,是因为配置过程中JAVA_HOME路径填写错误、软链接指向异常、PATH变量加载错误导致的。
  • 重启终端后仍加载旧版Maven 3.6.3,是因为旧版Maven未卸载、环境变量未全局生效,系统PATH中旧版Maven路径优先级高于手动安装的新版路径。

修复步骤

1. 清理历史错误配置

先清除之前操作生成的无效配置和旧版本程序,避免路径冲突:

# 删除之前创建的无效Maven软链接
sudo rm -rf /opt/maven
# 删除之前编写的错误环境变量脚本
sudo rm -f /etc/profile.d/maven.sh
# 卸载系统apt预装的旧版Maven
sudo apt remove -y maven
# 校验旧版命令是否清理完成,执行后无输出代表清理成功
which mvn

2. 确认Java环境真实路径

不要手动猜测JAVA_HOME路径,先通过系统命令确认Java 17的实际安装位置:

# 查看已安装的Java版本与路径
java --version
sudo update-alternatives --list java

正常OpenJDK 17的安装路径为/usr/lib/jvm/java-17-openjdk-amd64,之前配置中填写的/usr/lib/jvm/java-1.17.0-openjdk-amd64为错误路径,是导致配置失效的核心原因之一。

3. 重新安装Maven 3.8.5

# 创建临时下载目录
mkdir -p ~/tmp
MAVEN_VERSION=3.8.5
# 下载官方二进制包
wget -P ~/tmp/ https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz
# 解压到/opt目录
sudo tar xf ~/tmp/apache-maven-*-bin.tar.gz -C /opt
# 清理安装压缩包
rm -f ~/tmp/apache-maven-*-bin.tar.gz
# 创建软链接,后续升级Maven仅需修改软链接指向即可
sudo ln -s /opt/apache-maven-${MAVEN_VERSION} /opt/maven

解压完成后执行ls /opt/maven/boot,确认目录下存在plexus-classworlds-*.jar文件,即可确认安装包解压完整,不会再出现找不到Launcher类的错误。

4. 配置全局环境变量

# 写入环境变量配置
sudo tee /etc/profile.d/maven.sh << 'EOF'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=$M2_HOME/bin:$PATH
EOF
# 给配置脚本添加执行权限
sudo chmod +x /etc/profile.d/maven.sh

5. 加载配置并验证

# 加载全局配置
source /etc/profile.d/maven.sh
# 校验mvn命令路径,正常应输出/opt/maven/bin/mvn
which mvn
# 校验Maven版本
mvn -v

正常输出版本信息如下即为安装成功:

Apache Maven 3.8.5 (3599d3414f066afef419d4d74ffd558bbffe9f6b)
Maven home: /opt/maven
Java version: 17.0.3, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.13.0-44-generic", arch: "amd64", family: "unix"

如果重启图形界面终端后仍加载旧版本,就把上述maven.sh中的三行export配置追加到~/.bashrc文件末尾,执行source ~/.bashrc即可永久生效——部分Ubuntu桌面版默认不会给图形终端自动加载/etc/profile.d/下的脚本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 00:57:25