我试图将我的程序导出为可运行的JAR,Eclipse中的一切运行正常。我检查过以下内容:
Java Build Path
Order and Export
Package required libraries into generated JAR
然而,当我运行可运行的JAR时,我得到以下内容:
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at ca.carillon.jnlp.Launcher.<clinit>(Launcher.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
让我的可运行JAR工作的另一种方法是选择Extract required libraries into generated JAR
,但是我不想提取所有第三方JAR,有人可以告诉我还有什么其他的吗? Eclipse中缺少什么?
答案 0 :(得分:0)
一般来说,有三种选择:
在这种情况下,我使用Gradle的应用程序插件(https://docs.gradle.org/current/userguide/application_plugin.htm)创建胖罐,Maven也可以使用(How can I create an executable JAR with dependencies using Maven?)来创建。
我建议切换到一些构建工具,因为它也会运行测试等。在IDE中创建一个jar是恕我直言,这绝对不是一个好主意,绝对不是长期解决方案。试试Gradle吧。这很简单。