2016-09-22 36 views
1

我最近將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。我的環境變量的聲明如下:Maven錯誤:無法找到或加載主類.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

我假設你正在使用M2_HOME等,並安裝了較舊的Maven版本(3.2.X +)。最重要的是刪除所有的東西,如M2_HOME,M2等,只添加maven發行版的bin文件夾到你的路徑(就是JAVA_HOME除外)。 – khmarbaise

+0

不幸的是,這仍然會導致缺少.usr.share.maven.boot。 plexus-classworlds-2.x.jar錯誤。即使我手動執行/ usr/share/maven/bin/mvn -v,我也會得到相同的結果。 –

+0

你在你的環境中有這樣的地方。您是否刪除了M2_HOME和M2等,只保留路徑中的/ usr/shared/maven/bin ... – khmarbaise

回答

3

檢查/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,只留下符號鏈接。

相關問題