• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaのJARファイルがうまく作成できません)

JavaのJARファイル作成でエラーが発生する問題の解決方法

このQ&Aのポイント
  • JavaのJARファイル作成エラーの解決方法を紹介します。
  • JavaのJARファイル作成でエラーメッセージが表示される問題について、解決方法を説明します。
  • JavaのJARファイル作成時に発生したエラーの解決策についてご紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • gfe01045
  • ベストアンサー率61% (19/31)
回答No.3

マニフェストファイルの記述ミスと思うのですが?? > Manifest-Version: 1.0 > Main-Class: Z.GenerateRandNums.CUI_GenerateRandNums > Class-Path: x.y.RandomNum.jar     //この行を追加 > Created-By: 1.6.0_23 (Sun Microsystems Inc.) x/y/RandomNum/b のクラスパスが通っていないのでは?? これで jarファイル を作成してみては!!

heureuse
質問者

お礼

回答ありがとうございました。 お蔭様で解決する事ができました。

その他の回答 (2)

  • gfe01045
  • ベストアンサー率61% (19/31)
回答No.2

念のため判り易く例として、 packageクラスなどの場合 $ jar cf package.jar *.class //マニフェスト未使用 $ jar cf package.jar * //マニフェスト未使用(サブディレクトリ含む全て) 実行クラスの場合(実行クラスは変な言い方ですが要はメインクラス) $ jar cmf test.mf test.jar *.class //マニフェスト使用 $ jar cmf test.mf test.jar * //マニフェスト使用(サブディレクトリ含む全て) test.mf はマニフェストファイル <test.mf> の例(シンプルですが) Main-Class: ??? //メインのクラスとなるクラス名、これは必修 Class-Path: ./package.jar SplashScreen-Image: splash.jpg あなたの解説を見た限りでは、どういう仕組みかよく解らないのですが?? 参考になれば!!

heureuse
質問者

補足

回答ありがとうございました。 現状以下の通りで、未だに解決しておりません。 4つのソースプログラムがあります (1) D:\PRG\Java\x\y\RandomNum\RandomNumber.java (2) D:\PRG\Java\x\y\RandomNum\b.java (3) D:\PRG\Java\Z\CUI_GenerateRandNums.java (4) D:\PRG\Java\Z\d.java javac x\y\RandomNum\*.java コマンドで、(1)、(2)はコンパイルOK javac Z\GenerateRandNums\*.java コマンドで、(3)、(4)はコンパイルOK jar cf bin\x.y.RandomNum.jar x\y\RandomNum\*.class コマンドで エラーメッセージ表示されずに完了 binフォルダに x.y.RandomNum.jar が作成されました jar cmf Z\GenerateRandNums\GenerateRandNums.MF bin\Z.GenerateRandNums.jar Z\GenerateRandNums\*.class コマンドで エラーメッセージ表示されずに完了 binフォルダに Z.GenerateRandNums.jar が作成されました 上記(1)、(2)のpackage文は、共に、package x.y.RandomNum; です。 上記(3)、(4)のpackage文は、共に、package Z.GenerateRandNums; です。 main(String args[])メソッドは、上記(3)ファイル内にコーディングしています。 class CUI_GenerateRandNums { public static void main(String args[]) { ・・・ } // End of main() } // End of class マニフェストファイル GenerateRandNums.MF は、以下の内容(3行だけです)です。 Manifest-Version: 1.0 Main-Class: Z.GenerateRandNums.CUI_GenerateRandNums Created-By: 1.6.0_23 (Sun Microsystems Inc.) この状態で、java -jar bin\Z.GenerateRandNums.jar とコマンド入力すると、 コマンドプロンプト画面には、以下の内容が表示されました。 D:\PRG\Java>java -jar bin\Z.GenerateRandNums.jar Exception in thread "main" java.lang.NoClassDefFoundError: x/y/RandomNum/b Caused by: java.lang.ClassNotFoundException: x.y.RandomNum.b 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: Z.GenerateRandNums.CUI_GenerateRandNums. Program will exit. D:\PRG\Java> x.y.RandomNum.bにmainメソッドが見つからない、との意味だと思いますが、 上記(1)、(2)はサブルーチンなので、mainメソッドはありません。 (mainメソッドがあるのは、上記(3)ファイル内です) 色々と試行錯誤しているのですが、なかなか解決できません。 どうか、JARコマンド周辺をよくご存知の方は、解決方法をご教授下さい。

noname#147388
noname#147388
回答No.1

マニフェストに Main-Class の設定がされてないだけですね。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html

heureuse
質問者

お礼

回答ありがとうございました。 しかしご教授頂いたURLの文書は、実力不足で読みこなす事が出来ませんでした。今後は、実力を付けて読みこなせるよう努力して行きます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう