我是 Java 新手,正在学习如何将应用程序导出到 .jar 文件。我根据 Eclipse and Java for Total Beginners 中的教程在 Eclipse 中使用一些类制作了一个简单的 Java 应用程序.
当我通过 Run -> Run in Eclipse 运行我的应用程序时,我的应用程序运行时没有异常。但是,当我进入"file"->“导出”并将应用程序导出到 .jar 文件中,然后执行
java myLibrary.jar
在我的 Mac 终端中,我从标准错误中获得此输出。
Exception in thread "main" java.lang.NoClassDefFoundError: myLibrary/jar
Caused by: java.lang.ClassNotFoundException: myLibrary.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
这是什么意思?我怎么会缺课呢?我尝试选中和取消选中要导出的项目。例如,我尝试包含 JUnit 测试,但没有成功。
最佳答案
在终端中转到包含所有类文件的目录。
jar cmf MANIFEST.MF myLibrary.jar *
如果 jar 创建成功,您可以通过以下方式运行它:
java -jar myLibrary.jar
MANIFEST.MF 文件至少应包含:
Main-Class: myLibrary
其中 myLibrary 是包含主函数的类。
关于java - 为什么即使我的程序在 Eclipse 中运行没有异常,我的 .jar 文件也会引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588313/