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 に答える