我正在使用Eclipse程序编译我的.jar
它应该只是一个控制台窗口。我刚刚开始使用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岁。
答案 0 :(得分:3)
您需要添加包含在清单中运行JAR时执行的main()方法的类的名称。请查看this获取相关说明。
答案 1 :(得分:0)
我不知道你在这里做了什么,所以这里有一些来自我的玻璃球的猜测:
您是通过java -cp file.jar server
致电您的计划,而必须是java -cp file.jar finalproject
。
使用后一个命令。
您的IDE指示Jar Manifest中的一个主要类(server
),它不存在,您正在使用java -jar file.jar
。这也可以解释为什么你不能从Eclipse运行它。
检查您的构建设置以指示正确的主要课程。
答案 2 :(得分:0)
在您的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