0

我的 Program.java 是这样声明的类:

public class Program extends JFrame {
...

该程序编译并运行得很好,但是当我创建一个 jar 文件时,我收到了这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Program/jar
Caused by: java.lang.ClassNotFoundException: Program.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

这是我创建 jar 文件的方式(Linux):

javac Program.java
echo Main-Class: Program >manifest.txt
jar cvfm Program.jar manifest.txt Program.class 

这是因为我没有在我的 jar 创建中包含 JFrame.class 吗?如果是这样,JFrame 的源是否可用,以便我可以包含它?

谢谢你,祝你好运!

4

1 回答 1

1

您需要寻找以下内容:

  • 您的 jar 文件包含 META-INF 上的清单文件
  • 该清单文件包括主类。
  • 您的 .class 文件位于相应的文件夹中。
  • 你的主类有一个public static void main(String[] args)方法。

然后你应该能够通过调用来运行程序

java -jar yourjar.jar

干杯。

于 2012-04-27T18:30:47.583 回答