2013-12-08 27 views
5

我已使用apt-get install maven2安裝maven2.2.1。爲了編譯Hadoop的2.1.0源程序,我需要升級行家版本,但它是不能夠再次使用apt-get,因爲maven2.1.0是在lib最新的。錯誤:在構建Maven時無法找到或加載主類org.codehaus.classworlds.Launcher 3.0.4

我下載apache-maven-3.0.5-bin.tar.gz從官方網站,在路徑/usr/localtar apache-maven-3.0.5-bin.tar.gz,並把apache-maven鏈接的Apache Maven的-3.0.5

lrwxrwxrwx 1 root root 18 Dec 8 11:26 apache-maven -> apache-maven-3.0.5 
drwxr-xr-x 6 root root 1024 Dec 8 11:12 apache-maven-3.0.5 

export the order in the terminal like this: 
export M2_HOME=/usr/local/apache-maven 
export PATH=$PATH:$M2_HOME/bin 

輸入命令 「出口」,以確定:

............................................. 
declare -x M2_HOME="/usr/local/apache-maven" 
declare -x MANDATORY_PATH="/usr/share/gconf/ubuntu.mandatory.path" 
declare -x OLDPWD="/usr" 
declare -x PATH="/usr/lib/lightdm/lightdm:/usr/local/java/latest/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/apache-maven/bin" 

所有的跡象都表明行家3.0.5已經成功地配置,但是當我輸入

mvn -version

終端

,它顯示出這樣的錯誤:

Error: Could not find or load main class org.codehaus.classworlds.Launcher 

如果我換一個新終端和輸入mvn -version,它表明:

[email protected]:~$ mvn -version 
Apache Maven 2.2.1 (rdebian-8) 
Java version: 1.7.0_45 
Java home: /usr/local/java/jdk1.7.0_45/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux" version: "3.5.0-17-generic" arch: "amd64" Family: "unix" 

它發生的每一次雖然我已經卸載maven 2.2.1通過運行:

sudo apt-get remove --purge maven

我不知道爲什麼?我還沒有完全卸載它?

回答

2

我會推薦一個全新安裝的maven。首先,從系統

$ sudo apt-get remove maven

下一頁刪除行家的所有版本的安裝,而不是從包管理器下載,從Apache的官方網站上下載。我建議獲取最新版本的maven(3.1.X),並將其解壓縮到您擁有讀/寫權限的目錄中。

$ tar -xvf apache-maven-3.1.1.tar.gz

最後更新行家設置的所有符號鏈接和家庭的變量。您可以選擇定義環境變量。

  1. /etc/environment - >有些人不會因爲顯而易見的原因而提出設置全局變量的建議。
  2. /etc/bashrc - >我個人用這個來導出我想要的任何環境變量。
+0

非常感謝您的回答,我已經解決了這個問題,我應該使用apt-get remove maven2來移除已安裝的maven2.2.1,並清理已安裝的maven2.2.1的配置,使用apt-get安裝maven可以安裝maven3.0 +版本。 – user3079078

+0

如果有幫助 –

5

下面的答案(設置M3_HOME而不是M2_HOME)解決了我的問題 http://www.johnlabarge.com/post/33156663109/dreaded-maven-error-could-not-find-or-load-main-class

I had this little issue on my Mac after installing maven3 and jdk1.7. Here is what fixed my issue:

1) Remove the M2_HOME variable from the path.

2) Add M3_HOME variable with the path to your maven 3 installation.

Here is the interesting part: I use symbolic links for versioning. The values of both M2_HOME and M3_HOME were identical. Both were /Developer/maven. Hence it appears that the name M2_HOME in place of M3_HOME is what actually causes the issue. I leave it as an exercise (that I may return to) to find the issue in the source.

+0

+1,請不要忘記upvote /接受答案。我剛剛在Windows上將此問題從Maven 2升級到3。僅僅消除從路徑中提到的所有maven 2安裝是不夠的,我也不得不加載M2_HOME變量。 –

3

我得到這個錯誤了。原來我忘了重啓我的外殼。

一旦我關閉終端並再次打開它,錯誤不會回來,Maven就可以工作。

0

我在Windows 8中遇到了同樣的問題,但在我的情況下,maven目錄例如apache-maven-3.3.3被隱藏了。

從apache-maven-3.3.3目錄中刪除隱藏的選項後爲我工作。

相關問題