こんにちは。今、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で質問しましょう!
似たような質問が見つかりました
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- UNIX・Linux VScodeでjarファイルを開く方法 1 2022/06/03 17:00
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- アプリ jarを変換する方法 2 2022/06/04 14:26
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SVFの設定について:クラスパス...
-
javaクラスファイルをEclipseで...
-
「削除するか、クラスパスの正...
-
classファイルについて
-
Eclipse・プロジェクトで、フォ...
-
java クラスファイルとソースコ...
-
import javax.el.*;について
-
コンパイルした後 java (class...
-
org.apache.tools.zip.* を使っ...
-
jdbcドライバのjarファイルにク...
-
EclipseでHTTP404エラーが出る。
-
eclipseでjarファイル内のリソ...
-
EclipseでのJSP・Servlet開発に...
-
classファイルが作成されない
-
VisualStudioでC++クラスを追加...
-
【Eclipse】パッケージ・エクス...
-
ResourceBundleクラスの使い方
-
JavaBeansファイルとサーブレッ...
-
earファイルを展開する方法
-
コンパイルをしようとするとエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
SVFの設定について:クラスパス...
-
eclipse でclassesフォルダーが...
-
【Eclipse】パッケージ・エクス...
-
earファイルを展開する方法
-
EclipseでHTTP404エラーが出る。
-
jdbcドライバのjarファイルにク...
-
プログラム実行の際に、「ソー...
-
「メイン・マニフェスト属性が...
-
「削除するか、クラスパスの正...
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
『ClassNotFoundException: org...
-
javax.mailがimportできない
-
ResourceBundleクラスの使い方
-
macでのファイル場所指定
-
「main メソッドを持つクラスが...
おすすめ情報