Maven:mvn --version java.lang.ClassNotFoundException

时间:2012-06-04 22:45:48

标签: java linux maven classnotfoundexception

我刚刚在我的新Fedora 17 64bit中安装了新的Maven。

详细说明:

java -version

java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)

javac -version

javac 1.6.0_32

echo $ JAVA_HOME

/usr/java/jdk1.6.0_32

echo $ JRE_HOME

/usr/java/jdk1.6.0_32/jre

回显$ M2_HOME

/usr/local/maven/apache-maven-3.0.4

回显$ M2

/usr/local/maven/apache-maven-3.0.4/bin

echo $ PATH

/usr/local/maven/apache-maven-3.0.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin:/usr/sbin:/usr/java/jdk1.6.0_32/bin:/home/bujaka/.local/bin:/home/bujaka/bin

哪个mvn

/usr/local/maven/apache-maven-3.0.4/bin/mvn

但是mvn -version会抛出java.lang.ClassNotFoundException。

java.lang.ClassNotFoundException: org.apache.maven.cli.MavenCli
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:145)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:267)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)                                                    
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)                                          
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

P.S。我从apache站点安装了maven(不是来自fedora repos)

3 个答案:

答案 0 :(得分:3)

感谢user1436170,您的上一条评论也为我完成了这项工作:

/lib catalog was empty in maven.tar.gz archive.

当通过krusader打开时,tar.gz文件中的lib文件夹为空,但是当通过ark打开时它包含jar。

无论如何拉链工作。

答案 1 :(得分:0)

MavenCli类在maven-embedder中。你是代理人吗?

  <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
    </proxy>
  </proxies>
  ...
</settings>

@See Maven Proxy Settings

答案 2 :(得分:0)

我刚遇到同样的问题。 Bujaka的评论和彼得·布特科维奇的回答得到了解决,但是在这里记录了我对它的看法以及我使用的解决方案。

我不知道是什么原因引起的,但有时maven安装目录中/ lib文件夹的整个内容都会变空。当您收到此错误时可能就是这种情况。

如果你检查你的/ lib文件夹并发现它不是空的,那么仍然可以(尽管不太可能)某个关键文件被某种方式删除了。

如果您的maven安装过去工作查找并且最近才开始执行,那么您使用的压缩存档可能没问题。这是做什么的:

  1. 重命名您的安装目录(或者,如果您非常勇敢,只需将其删除)。
  2. 获取原始压缩存档。 (如果你像我一样,它仍然在你日益混乱的下载文件夹中的某个地方。如果不是你,你将不得不重新下载它。)
  3. 将所述存档解压缩到原始安装目录的位置(您已重命名或删除)。
  4. 您的maven安装现在应该再次运行。