【发布时间】:2023-03-03 04:41:01
【问题描述】:
我正在尝试从我的 Scala 项目中创建一个可执行的 Jar。因此,我遵循了一个教程。它建议在 eclipse 中创建一个 Java 主类,它调用 Scala 入口点。这在 eclipse 中执行时工作正常。添加这个类后,我能够导出一个可执行的 jar。但是,它不适用于
java -jar myjar.jar
我确保在导出时激活“将所需的库打包到 jar 中”。我的 Java 主类是这样的(其中 Driver 也位于包核心中)
package core;
public class Main {
public static void main(String[] args) {
Driver.main(args);
}
}
当执行导出的字符时,会抛出以下错误,我可以调试:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NoClassDefFoundError: scala/collection/Seq
at core.Driver$.main(Driver.scala:14)
at core.Driver.main(Driver.scala)
at core.Main.main(Main.java:5)
... 5 more
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
【问题讨论】: