
こんにちは。今、Windows Vistaと、Java SE 6 UPDATE 4でJavaの勉強をしているのですが、以前書籍を読んでjarファイルを作った時は、コマンドラインからしか実行しなかったのですが、どうもダブルクリックでも実行できるような事が各サイトに載っていましたので、あるサイトを参考にHelloWorld.jarというファイルを作ったのですが、コマンドラインからは動作できますが、ダブルクリックしても「このファイルを開けません」というダイアログボックスが出てきたので、「インストールされたプログラムの一覧からプログラムを選択する」でjavaw.exeを選んだりjava.exeを選んだりして実行してみたのですが、コマンドラインが一瞬立ち上がってすぐに消えたり、「Could not find the main class. Program will exit.」というダイアログが出現したりして実行できませんでした。
MANIFEST.MFは、
Manifest-Version: 1.0
Main-Class: HelloWorld
と記述してます。
コマンドラインでjarファイルを作った時のコマンドは、
jar cvfm HelloWorld.jar MANIFEST.MF *.class
です。
コマンドラインからでは、java -jar HelloWorld.jarで動作しています。
HelloWorld.jar をラカで解凍したら、HelloWorldフォルダ直下に、HelloWorld.classとMainPanel.classとMETA-INFフォルダ、
META-INFフォルダの中にMANIFEST.MFがあり、中身は、
Manifest-Version: 1.0
Created-By: 1.6.0_04 (Sun Microsystems Inc.)
Main-Class: HelloWorld となっていました。
もし悪い所がございましたら、アドバイスの方よろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
こんにちは、
コマンドラインで、実行できるけど、
ダブルクリックで、
Could not find the main class. Program will exit
が出る、同様な、例を見つけました。
http://www.javaroad.jp/bbs/answer.jsp?q_id=20080 …
これによると、もしかすると、関連付けかもしれません
関連付けは、以下のURLのようになっているでしょうか。??
http://www.s-cradle.com/support/sophiacompress_j …
関連付けが上手く行っていなくとも同じエラーが出るみたいです。
Could not find the main class. Program will exit
で検索すると、沢山、ヒットするようです。
eclipseのせいだとか、書いてあるのもあるので、
netbeansをインストールして試してみるのも良いかも知れません。
アドバイスありがとうございます。関連付けあたりが一番あやしそうなのでやってみます。vistaではどこで「アクションの編集」でopenとかを行えばいいかよくわからないのでまだうまくいっていませんが、かなり近いところまで来てそうなので引き続きいろいろやってみようと思います。netbeansは何をするものなのか知らないので、それもまた調べてみようと思います。
いろいろとアドバイスしていただきまして、ありがとうございました。
No.5
- 回答日時:
No.4
- 回答日時:
こんにちは、
エクリプスで、エキスポートしても、うまくjarが
動作しませんか???
不思議ですね。
いただいた、ソースコードを実行してみましたが、
ちゃんと動作しますね。
目的のjarファイルを作っても見ましたが、
ダブルクリックで、ちゃんと動作します。
>これらをコンパイルしまして、
>できたクラスファイル2つとMANIFEST.MF、
>この3つのファイルが同じフォルダにある状態で、
>jarファイルを作りました
エクリプスを利用するので、今回は、これは、やりませんでしたよね。
ちなみに、エクリプスの今回作ったプロジェクトのワークススペースには
.classpath
.project
HelloWorld.class
HelloWorld.java
MainPanel.class
MainPanel.java
この6つのファイルしかないですよね。
MANIFEST.MFファイルは、ないですよね。
後は、プロジェクトをエキスポートする時に
.classpath
.project
が出来るように、checkを入れて、
エキスポート先の設定と
あと、メインクラスを選択して。完了させれば
okなのですが。
MANIFEST.MFは、独自に作らなくとも、いいはずです。
前回紹介したホームページのエクリプスでのjarファイルの
作成方法を、注意点を参考に、
も一度トライしてください。
実行した結果。
また、
Could not find the main class. Program will exit
がでますか、それとも、違うメッセージが出ますか???
この回答への補足
アドバイスありがとうございます。何度も丁寧に対応していただきまして感謝しております。
>これらをコンパイルしまして、
>できたクラスファイル2つとMANIFEST.MF、
>この3つのファイルが同じフォルダにある状態で、
>jarファイルを作りました
はい。これは、最初にマニュアルで作成した時の手順です。
ご紹介いただきましたサイトを参考に、7回ほど挑戦しましたが、やはりうまくいきませんでした。
ワークスペースのプロジェクトの中には、.classpathファイルと、.projectファイルと、binフォルダ、srcフォルダが入ってまして、binフォルダの中に、HelloWorld.classとMainPanel.classが入っていまして、srcフォルダの中に、ソースファイルが入っています。
完成したHelloWorld.jarをラカで解凍して中身を見ましたら、HelloWorldフォルダができまして、その中に、.classpathと.projectとHelloWorld.classとMainPanel.classと、自動的にMETA-INFフォルダができていました。META-INFフォルダの中には、自動的にMANIFEST-MFが作成されていました。
Eclipseで作成しましたjarファイルを、コマンドラインでjava -jar HelloWorld.jar と打ったら実行できるのですが、ダブルクリックで実行させると、Could not find the main class. Program will exit になりました。
あと、別のパソコン(Windows xp とJ2SE1.4です。自分のパソコンを持つ前に家族のパソコンを借りて使ってました。)でHelloWorld.jarをマニュアル作成し、そのパソコンでダブルクリックして実行しましたら、うまく行きました。うまくいったjarファイルをメモリーカードに保存し、自分のパソコンでダブルクリックをしましたら、やはりうまくいきませんでした。その逆に、自分のパソコンでマニュアル作成しましたHelloWorld.jarを、別のパソコンでダブルクリックしてもやはりうまくいきませんでした。
C:\program files\Javaの中に以前のバージョンのJavaが残っていましたのでアンインストールしました。ついでに今のバージョンのJavaも再インストールしてみましたが、やはりうまくいきませんでした。
No.3
- 回答日時:
こんにちは、
eclipseを利用したいたのですか、
ならば、以下のURLのようにすれば良いみたいです。
http://sunjava.seesaa.net/article/57546363.html
単に、チェックして、メインクラスを指定して、
エキスポートを完了させれば、良いみたいですよ。
自分で、マニュフェストファイルを作ったりしていたので、
マニュアルで、jarファイルを作っているのかと
思いました。
しかし不思議なのですが。
コマンドラインから、実行できて、
ダブルクリックで、実行できない理由がわかりません。
もし動作しなかったら、プログラムソースに問題があるのかな??
ソースを補足で、公開してください。
この回答への補足
アドバイスありがとうございます。ソースの方は、
HelloWorld.javaが、
import java.awt.*;
import javax.swing.*;
public class HelloWorld extends JFrame{
public HelloWorld(){
setTitle("ハロー");
MainPanel panel=new MainPanel();
Container pane=getContentPane();
pane.add(panel);
pack();
}
public static void main(String[] args){
HelloWorld frame=new HelloWorld();
frame.setDefaultCloseOperation(3);
frame.setVisible(true);
}
}
MainPanel.javaが、
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class MainPanel extends JPanel{
private static final int WIDTH=240;
private static final int HEIGHT=240;
public MainPanel(){
setPreferredSize(new Dimension(WIDTH,HEIGHT));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("ハローワールド",20,50);
}
}
になっています。
これらをコンパイルしまして、できたクラスファイル2つとMANIFEST.MF、この3つのファイルが同じフォルダにある状態で、jarファイルを作りました。
あと気になるところですが、参考サイトが提供しているhello_world.jarというファイルをデスクトップにダウンロードして、デスクトップ上のhello_world.jarをダブルクリックしても、
同じように、「Could not find the main class. Program will exit.」というダイアログが出現して実行できませんでした。
参考サイトは、
http://javagame.skr.jp/index.php?%BC%AB%B8%CA%BC …
を参考にしました。
申し訳ございません。追加補足ですが、最初はコマンドラインからjarファイルを作成しました。それでうまくいかなかったので今回質問投稿しまして、tom11さんからいただいたアドバイスをもとに、今度はEclipseを使って、jarファイルを作成しました。
Eclipseを使って、jarファイルを作成した参考サイトは、tom11さんが教えて下さりましたサイトと同じサイトでした。
No.2
- 回答日時:
こんにちは、
jarファイルをダブルクリックで、結果を見たいとき
GUIのプログラムをお勧めします。
コンソールアプリだと、私も試して見ましたが。
窓は、開きません。
エラーも出ません。
>コマンドラインが一瞬立ち上がってすぐに消えたり
この現象は、もしかすると、コンソールアプリなので、
ドス窓が、開いて実行して、すぐ、ドス窓が
閉じる現象かもしれません
プログラムが、途中で止まらず終了しているのかもしれません。
javaを勉強するなら、IDEは、必須です。
エクリプスでもネットビーンでもどちらも無料だし、
jarファイルも、自動で簡単に作成できて、
ミスが少なくなります。
IDEを使うことをお勧めします。
この回答への補足
アドバイスありがとうございます。
プログラムはGUIプログラムです。
Eclipseで、プロジェクトの上で右クリックしてエクスポートからjarファイルを作って、ダブルクリックしてみましたが、
「Could not find the main class. Program will exit.」というダイアログが出現して、実行できませんでした。
Eclipseの「実行」ボタンでは動きますし、コマンドラインからでも実行できるプログラムなのですが、もしおかしい所がございましたらまたアドバイスよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
jarを起動するとCould not find the main classと表示されます
Java
-
jarファイルをダブルクリックで実行
Java
-
JARファイルをEclipseを使って作成したのですが、ダブルクリック
Java
-
4
jarファイルとjava.exeの関連付けについて
Java
-
5
JARファイルのダブルクリック実行について
Java
-
6
classファイルについて
Java
-
7
javaクラスファイルをEclipseで開きたい
Java
関連するQ&A
- 1 jarファイルをダブルクリックしても起動できません。ダブルクリックする
- 2 JARファイルのダブルクリック実行について
- 3 jarファイルをダブルクリックで実行
- 4 jarダブルクリックで実行できません
- 5 アプリケーションをダブルクリックで起動できるjarファイル
- 6 [Macintosh] JARファイルのダブルクリックで起動できますか?
- 7 JARファイルをEclipseを使って作成したのですが、ダブルクリック
- 8 JARファイルをEclipseを使って作成したのですが、ダブルクリック
- 9 実行可能jarファイルのファイル名取得
- 10 classファイルとJARファイルで実行した出力が異なる
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
EclipseでHTTP404エラーが出る。
-
5
earファイルを展開する方法
-
6
Tomcatの「\\WEB-INF\\classes...
-
7
【Eclipse】パッケージ・エクス...
-
8
eclipse でclassesフォルダーが...
-
9
コンパイルをしようとするとエ...
-
10
javaクラスファイルをEclipseで...
-
11
Xcodeで日本語文字化けしてしま...
-
12
JSP内で外部jsファイルを指定する
-
13
jarsignerで署名の確認
-
14
ディレクトリのワイルドカード
-
15
コンパイルした後 java (class...
-
16
【Eclipse】逆コンパイルでエラ...
-
17
JAVAで別端末へファイル転送
-
18
FileWriterで8kb以上書き込むに...
-
19
Eclipseで、配布可能なJARファ...
-
20
VB 2008 DLL作成の方法
おすすめ情報