17

我正在尝试通过 Eclipse 的导出功能打包一个用 Scala 编写的简单可执行 Jar。

尝试从 cmd 执行 Jar 时java -jar test2.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
4

4 回答 4

11

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

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

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

java可以在此处找到tha comamnd 的文档:http: //docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

于 2013-05-29T19:17:56.237 回答
1

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

右键项目,构建路径,配置构建路径,编辑你的jdk小于11

于 2019-07-22T12:32:56.727 回答
0

我确实从项目中删除了Scala 库容器”。下一步 -在的库中将所需的 scala 库(scala-library.jar )添加Java BuildPath(在Properties for 中)作为“添加外部 JAR... ” (不是对 scala lib 的引用)。最后将它们全部包含到“订购和导出” 中 -使用选项“将所需的库打包到生成 JAR ”为项目执行导出,这工作正常:)

于 2015-03-07T11:00:43.057 回答
0

您还可以将 scala 库与您的项目打包在一起。看到这个帖子

于 2013-05-29T19:51:12.210 回答