我是Java新手,学习如何将应用程序导出到.jar文件。我在Eclipse中创建了一个简单的Java应用程序,其中包含一些基于Eclipse and Java for Total Beginners的教程的类。
当我通过Run运行我的应用程序时 - >在Eclipse中运行,我的应用程序无异常运行。但是,当我到文件 - >将我的应用程序导出并导出到.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测试无济于事。
答案 0 :(得分:1)
当您运行java
而没有参数时,它将打印:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
使用-jar
运行您的jar
文件。
您还需要指明要运行的类。您可以在清单中执行此操作(您将使用Main-Class
标头)。您可以在此处详细了解:http://docs.oracle.com/javase/tutorial/deployment/jar/run.html
答案 1 :(得分:1)
在终端中转到包含所有类文件的目录。
jar cmf MANIFEST.MF myLibrary.jar *
然后,如果jar创建成功,您可以通过以下方式运行它:
java -jar myLibrary.jar
MANIFEST.MF文件至少应包含:
Main-Class: myLibrary
myLibrary是包含主函数的类。
答案 2 :(得分:0)
在eclipse中,右键单击您的项目 - >点击导出 - > Java - > Jar文件 - >选择源文件夹(在大多数情况下,默认值应该可以正常)。给出jar文件的位置。转到向导的最后一页,在“选择应用程序入口点的类:”中,选择具有main的java类文件。