我最近将我的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时,我得到Launcher错误而不是plexus-classworlds-2.x.此外,我已经完全删除并重新安装了所有丛库,但没有任何变化。
答案 0 :(得分:4)
检查/usr/share/maven/boot
是否有多个图案为/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
这会弄乱/usr/share/maven/bin/mvn
bash脚本并执行错误的java命令。
我不得不移除jar并只留下符号链接。