ClassNotFoundException: scala.PreDef美元问题



我试图通过Eclipse的Export函数打包一个用Scala编写的简单的可执行Jar。

当试图从cmd java -jar test2.jar执行Jar时

我得到以下错误。什么好主意吗?谢谢你。

Caused by: java.lang.NoClassDefFoundError: scala/Predef$
        at Parser.Test(Parser.scala:5)
        at Main.main(Main.java:12)
        ... 5 more
Caused by: java.lang.ClassNotFoundException: scala.Predef$
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 7 more

您只需要将scala库jar添加到类路径中。

您可以这样做(假设"scala-library.jar" jar在当前目录中):

java -cp scala-library.jar -jar test2.jar

java命令的文档可以在这里找到:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

对我来说,我使用JDK 11和scala库容器2.12.3,当我改为JDK 8时,它工作得很好这是因为jdk11的scala版本支持JDK兼容

右键单击项目,构建路径,配置构建路径,编辑jdk到小于11

您还可以将scala库打包到您的项目中。看这篇文章

我做了从项目中删除 "Scala库容器"下一步- 添加需要的scala库(scala-library.jar)到Java BuildPath(在Properties for中)作为" add External JARs…"在我的库中(不是作为对scala库的引用)。并将它们全部包含到"Order And Export"最后 - do Export for project with option "Package required libraries into generate JAR"这很好:)

尝试执行:

scala -jar test2.jar

代替:

java -jar test2.jar

相关内容

  • 没有找到相关文章