`
xinklabi
  • 浏览: 1586357 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

错误: 找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Launcher

 
阅读更多

在pom.xml里面增加了一个jar包,idea的环境变量中没有,需要mvn idea:idea的时候包NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher 

MVN的安装目录: /usr/local/maven3/ 

首先,查看执行的mvn路径 
root@ubuntu:/# which mvn 
/usr/bin/mvn 

第二步:查看软链接指向的具体路径 
root@ubuntu:/# ls -la /usr/bin/mvn 
lrwxrwxrwx 1 root root 25  7月 31 16:07 /usr/bin/mvn -> /usr/local/maven3/bin/mvn 

第三步:修改mvn脚本 
找到mvn执行语句 
exec "$JAVACMD" \ 
  $MAVEN_OPTS \ 
  -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ 
在这之前添加输出 
echo "$JAVACMD" \ 
  $MAVEN_OPTS \ 
  -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ 
  "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ 
  "-Dmaven.home=${M2_HOME}" 

执行mvn,输出的信息: 
root@ubuntu:/usr/local/maven3/bin# mvn 
/usr/local/jdk1.7.0_21/bin/java -classpath /usr/local/apache-maven-3.0.5/boot/plexus-classworlds-*.jar -Dclassworlds.conf=/usr/local/apache-maven-3.0.5/bin/m2.conf -Dmaven.home=/usr/local/apache-maven-3.0.5 

转自:http://moqiaoxp.iteye.com/blog/1916215

错误: 找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Launcher 

到这里已经很明白了,${M2_HOME}的环境变量设置的路径错误 

参考资料: 
http://blog.csdn.net/bigapplestar/article/details/7341338

 

想在mac本上把程序代码也checkout下来。本来先装的maven 3,但是同步过几次后出现了问题,因为maven3和maven2的配置文件要求好像有些不同,遂想重新装maven2。

    安装maven时,因为只是需要将maven的包解压缩后放到相应的位置,再设定相应的几个环境变量如下:

    M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4

    M2=$M2_HOME/bin

    PATH=$M2:$PATH

    现在想想当时设的时候就是M2,我还去装了个新的Maven3,也是自找没事了。。

    本以为简单地把PATH中的改一下,指向新的apache-maven-2.2.1就行,但是运行mvn eclipse:eclipse时却出现如下的异常

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

    查了后,有一些说是因为在环境变量里即设了M2_HOME又设了M3_HOME,不过我并没有设过。再找原因了,终于找到一个合适的解决方案。

    可以查看一下系统中的这些量。

bash-3.2$ which mvn

/usr/bin/mvn

bash-3.2$ ls -la /usr/bin/mvn 

lrwxr-xr-x  1 root  wheel  24 Feb 16 22:54 /usr/bin/mvn -> /usr/share/maven/bin/mvn

bash-3.2$ ls -la /usr/share/maven

lrwxr-xr-x  1 root  wheel  16 Feb 16 22:54 /usr/share/maven -> java/maven-3.0.3

可以看到,这里链接的还是maven-3.0.3,这看起来似乎是java自动更新连接的,甚至都不是我之前的版本3.0.4……

为了与开发时大家的版本保持一致,重新设置一下

bash-3.2$ cd /usr/share/

bash-3.2$ sudo mv maven maven.temp

bash-3.2$ sudo ln -s /usr/local/apache-maven/apache-maven-2.2.1/ maven

再运行命令查看版本,搞定

bash-3.2$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
Java version: 1.6.0_29
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.8" arch: "x86_64" Family: "mac"

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics