我最近将Ubuntu从14.04升级到16.04,并在运行任何mvn命令(版本3.3.9)时开始出现以下错误:Error: Could not find or load main class .usr.share.maven.boot.plexus-classworlds-2.x.jar。我的环境变量声明如下:
$JAVA_HOME: /usr/lib/jvm/java-8-oracle
$PATH: /usr/local/texlive/2015/bin/x86_64-linux:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$M2_HOME: /usr/share/maven
$M2: /usr/share/maven/bin
尝试找到解决方案时,我尝试按照各种线程上的建议删除M2和M2_HOME变量,这导致出现另一个错误:Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher。我也尝试过apt-get remove --purge maven再次运行和安装它,以及下载.tar.gz档案,但是在两种情况下,都没有改变。
当查看/usr/share/maven/boot文件夹时,有从指向的符号链接链plexus-classworlds-2.x.jar -> /usr/share/java/plexus-classworlds2-2.5.2.jar。我缺少一些依赖吗?还是有没有被删除的旧配置文件--purge?
编辑:当我以root身份执行mvn时,出现启动器错误,而不是plexus-classworlds-2.x。另外,我已经完全删除并重新安装了所有plexus库,但没有任何更改。
检查是否/usr/share/maven/boot有多个带有pattern的罐子/usr/share/maven/boot/plexus-classworlds-*.jar。
我的是这样的:
drwxr-xr-x 2 root root 4096 Dec 23 14:21 ./
drwxr-xr-x 6 root root 4096 Nov 14 2015 ../
-rw-r--r-- 1 root root 52684 Dec 12 2015 plexus-classworlds-2.5.2.jar
lrwxrwxrwx 1 root root 34 Dec 10 2015 plexus-classworlds-2.x.jar -> ../../java/plexus-classworlds2.jar
Run Code Online (Sandbox Code Playgroud)
这会弄乱/usr/share/maven/bin/mvnbash脚本并执行错误的java命令。
我不得不删除了罐子,只留下了符号链接。
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |