【问题标题】:Maven throws a ClassNotFoundException codehaus.plexus.Launcher with JDK 9 [closed]Maven 使用 JDK 9 抛出 ClassNotFoundException codehaus.plexus.Launcher [关闭]
【发布时间】:2017-09-30 07:20:09
【问题描述】:

在尝试新发布的 JDK 9 时,我注意到它似乎完全破坏了 maven。即使是简单的mvn -version 也行不通:

vgm@localhost:~$ mvn -version
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher

当我切换回openjdk8时,它说maven版本是3.3.9

我尝试设置JAVA_HOMEMVN_OPTS,但没有效果。这些是我的设置:

vgm@localhost:~$ echo $JAVA_HOME 
/usr/java/jdk-9
vgm@localhost:~$ echo $MVN_OPTS
-Dmaven.compiler.fork -Dmaven.compiler.executable=/usr/bin/javac

【问题讨论】:

  • 建议更新并尝试安装 3.5.0。另外,如果您设置了 M2_HOME,请执行 follow this.
  • 此外,在您的情况下,MVN_OPTS 编译器指向不同的 javac 版本`/usr/bin/javac`,将其更改为/usr/java/jdk-9/bin/javac 可能会有所帮助。看看stackoverflow.com/questions/36583118/is-maven-ready-for-jdk9
  • mvn -version3.5.0 一起使用,但构建仍然失败,因为 maven 正在尝试查找 tools.jar。 javac 路径是一个软链接,它指向正确的位置。
  • 构建仍然失败.. 到目前为止,问题中没有关于构建失败的详细信息。另外如果你正在尝试构建一个项目,你能分享它的 pom.xml 的<build> 信息吗?
  • 你是对的,它在一个最小的示例项目上运行良好。如果我再次卡住,我会提出一个新问题。谢谢!

标签: java maven maven-3 java-9


【解决方案1】:

作为nullpointer suggested,我更新到了Maven 3.5.0,现在可以使用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    相关资源
    最近更新 更多