Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

jarファイルでエラーが出ます。どこが間違っていますか??

重複すみません。
匿名は失礼なのかなと思いIDを作って立て直しました。

jarファイル作成の勉強をしているのですが、エラーが出て困っています。

使っているのは『プログラマー 研究所 シューティング』
で検索すると一番上に出てくるページの『Simple.jar』です。

まず、jarで解凍したりアーカイブしたりを試してみました。

Cドライブに『test1』フォルダを作ってそこに保存しました。
[C:\test1\Simple.jar]
これをダブルクリックするとゲームが起動します。
コマンドプロンプトを起動して
「cd \test1」でSimple.jarを保存したディレクトリに移動しました。
「jar xvf Simple.jar」で解凍しました。
『META-INF』(中にMANIFEST.MF)と4つのクラスファイル、
『Canvas.class』
『InputDevice.class』
『PlayState.class』
『Simple.class』
あとは『resources』(中にgif)と『src.lzh』ができました。
「jar cvfm test1.jar META-INF\MANIFEST.MF *.class resources」
で『test1.jar』ができました。
『test1.jar』をダブルクリックするとゲームが起動しました。

問題はここからなのですが、
次にソースをコンパイルして、jarにできるか試してみました。

次にC直下に『test2』というフォルダを作りました。
そこにsrc.lzhを解凍してできたjavaファイルを入れました。
C:\test2\Canvas.java
C:\test2\InputDevice.java
C:\test2\PlayState.java
C:\test2\Simple.java
(解凍したときmakejar.batというバッチファイルがでてきたのですが
扱いがわからないので放置しました。)
「cd ../test2」で移動し
「javac *.java」でコンパイルしました。
クラスファイルが4つできました。
test1から『META-INF』と『resources』をコピペしてtest2に入れました。
そこでまたさっきと同じように
「jar cvfm test2.jar META-INF\MANIFEST.MF *.class resources」
でtest2.jarができました。
これをダブルクリックしても
「Could not find the main Class: Simple.Program will exit.」
と出て起動してくれません。
コマンドプロンプトで(カレントディレクトリtest2)
「java -jar test2.jar」
と打つと起動してくれます。

「lzhの中のソースがクラスファイルと違うものなのかな?」
と思い、
『test3』をC直下に作って、test1のクラスファイルをコピペしました。
[C:\test3\Canvas.class]など4つ
「cd ../test3」
「jad *.class」でデコンパイルして
[C:\test3\Canvas.jad]など4つできました。
拡張子をjadからjavaに変えて、
上のtest2と同じようにtest3.jarをつくりました。
ダブルクリックで起動できませんでした。
「java -jar test3.jar」で起動してくれます。

きっとコンパイルのときになにか間違ってるんだ!
batファイルをどうにかしないといけないのかな?
と思い色々検索しましたがさっぱりわかりません。
なにか助言いただければうれしいです。

OSはwindows7 home 64bit
JDKは1.7.0です。
宜しくお願いします。

2

回答

6358

閲覧

2件の回答

評価

0

自己解決できました
苦節2週間半でした。
jdk1.7.0_1に同梱されているjreではjarのダブルクリック起動ができないようです。
全然別のことで、jre1.7.0_2のインストーラを落とす機会がありまして、
「いみねぇけど一応このPCにもいれとくかー」
くらいでjre単体を自分のPCにもインストールしました。
そしたら、今までつくったjarファイルが全部起動できるではないですか。
「jdk1.7.0_1の不具合じゃーーーーーーーーーん」(日常みおちゃん風)
ということで、他の方がこの苦しみを味わうことはないかもしれませんが
jdk1.7.0_2がどうなっているかわからないので一応記載しておきます
お役にたてれば。。

評価

0

> dk1.7.0_1に同梱されているjreではjarのダブルクリック起動ができないよ
うです。

たぶん、別の起動設定(解凍)とかを上書きしただけじゃないかな

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。