Maven:mvn --version java.lang.ClassNotFoundException

问题描述 投票:0回答:5

我刚刚将新的 Maven 安装到我的新 Fedora 17 64 位中。

详情:

java-版本

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-版本

javac 1.6.0_32

回显$JAVA_HOME

/usr/java/jdk1.6.0_32

回显$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

回显$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)

附注我从 apache 站点安装了 Maven(不是从 fedora 存储库)

java linux maven classnotfoundexception
5个回答
4
投票

谢谢

user1436170
,你最后的评论也为我完成了这项工作:

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

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

无论如何,拉链是有效的。


1
投票

我刚刚遇到了同样的问题。 Bujaka 的评论和 Peter Butkovic 的回答解决了这个问题,但为了记录,这里是我对此的看法和我使用的解决方案。

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

如果您检查 /lib 文件夹并发现它不为空,则仍然有可能(尽管不太可能)某个关键文件以某种方式被删除。

如果您的 Maven 安装曾经可以正常查找并且最近才开始出现问题,那么您使用的压缩存档可能没问题。 这是要做的事情:

  1. 重命名您的安装目录(或者如果您足够勇敢,只需将其删除)。
  2. 获取原始压缩档案。 (如果您像我一样,它仍然位于您日益混乱的下载文件夹中的某个位置。如果不是,您将不得不重新下载它。)
  3. 将所述存档解压缩到原始安装目录的位置(您可以重命名或删除该目录)。

您的 Maven 安装现在应该可以再次运行了。


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>

@参见Maven代理设置


0
投票

此问题的最佳解决方案: 转到 maven 官方网站,即 https://maven.apache.org/download.cgi 并下载最新的 Apache maven。 (请确保您专门为 Windows 用户下载二进制 zip 存档)

并将系统环境变量设置为:

MAVEN_HOME      C:\Program Files (x86)\apache-maven-3.8.6

path            %MAVEN_HOME%\bin

0
投票

我在 Windows 中遇到了同样的问题,尝试安装最新的 Maven 版本,它导致了相同的

class not found
异常。我怀疑这与
/lib
目录中缺少的依赖项有关。我必须安装以前的稳定版本而不是最新版本,这为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.