我刚刚将新的 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 存储库)
谢谢
user1436170
,你最后的评论也为我完成了这项工作:
/lib catalog was empty in maven.tar.gz archive.
通过 krusader 打开时,tar.gz 文件中的 lib 文件夹是空的,但通过 ark 打开时包含 jar。
无论如何,拉链是有效的。
我刚刚遇到了同样的问题。 Bujaka 的评论和 Peter Butkovic 的回答解决了这个问题,但为了记录,这里是我对此的看法和我使用的解决方案。
我不知道是什么原因造成的,但有时你的maven安装目录中的/lib文件夹的全部内容可能会变成空。 当您收到此错误时,可能就是这种情况。
如果您检查 /lib 文件夹并发现它不为空,则仍然有可能(尽管不太可能)某个关键文件以某种方式被删除。
如果您的 Maven 安装曾经可以正常查找并且最近才开始出现问题,那么您使用的压缩存档可能没问题。 这是要做的事情:
您的 Maven 安装现在应该可以再次运行了。
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代理设置
此问题的最佳解决方案: 转到 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
我在 Windows 中遇到了同样的问题,尝试安装最新的 Maven 版本,它导致了相同的
class not found
异常。我怀疑这与 /lib
目录中缺少的依赖项有关。我必须安装以前的稳定版本而不是最新版本,这为我解决了这个问题。