如何解决如何从程序创建可执行的jar文件,以便可以双击或从命令行运行它?
| 我正在使用程序Eclipse编译我的.jar http://pastebin.com/AY79DbgY 它应该只是一个控制台窗口。我刚开始使用Java,所以我不知道自己做错了什么。 当我尝试运行在Eclipse中编译的.jar时,它根本不会运行,但是如果我打开cmd并尝试通过它运行,它会打印出此内容,我都不了解:Exception in thread \"main\" java.lang.NoClassDefFoundError: server
Caused by: java.lang.ClassNotFoundException: server
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 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: server. Program will exit.
我只是想制作一个.jar,可以在任何计算机上运行而无需使用Eclipse。它可以在控制台中正常运行。
另外,每隔一段时间,当我在Eclipse的控制台中终止脚本时,就会收到此错误,但否则似乎可以正常运行:
Exception in thread \"main\" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at finalproject.main(finalproject.java:432)
所以我现在还不知道我在做什么。
如果我看起来像我年轻,那是真的,我只有15岁。
解决方法
您需要添加包含在清单中运行JAR时执行的main()方法的类的名称。看一下以获得指导。
, 我不知道您在这里实际上做了什么,所以以下是我的玻璃球的一些猜测:
您正在按
java -cp file.jar server
调用程序,而必须是java -cp file.jar finalproject
。
使用后一个命令。
您的IDE指示Jar Manifest中某个主类(server
)不存在,而您正在使用java -jar file.jar
。这也将解释为什么您不能从Eclipse运行它。
检查您的构建设置以指示正确的主类。
, 在您的JAR文件中,您应该有一个名为MANIFEST.MF的文件(在META-INF文件夹下)
这描述了jar文件的各种属性。
您应该对其进行编辑并添加:
Main-Class: finalproject
我将您的类放在一个包中,因为将它放在默认包中会引起一些类路径麻烦。
您可以使用winzip或winrar打开JAR文件并直接编辑MANIFEST.MF进行测试,但实际上,您应该将其与打包在JAR中的类一起放在外面,以便每次生成JAR文件时都包括与其他课程一起使用。
这是生成JAR文件时如何在默认清单中添加文件的方式。
http://download.oracle.com/javase/tutorial/deployment/jar/modman.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。