AIと戦って、あなたの人生のリスク診断 >>

jarファイルをコマンドプロンプトから実行することは可能なのですが
ダブルクリックをすると「could not find class.program will exit」という
メッセージが出て実行できません。
自分の作ったファイルが悪いのかと思い
http://cafe.justsystem.co.jp/Tips/javaapp/hellow …
で紹介されているHelloWorld.jarもダブルクリックでは実行することが出来ませんでした。

ダブルクリックで実行するためには何か特別な設定をする必要があるのでしょうか?
自分なりに過去ログを見たのですがわからないのでよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>jarファイルの関連付けは「Java(TM) 2 Platform Standard Edition binary」となっています



もっと詳細に調べる。

「フォルダオプション」

「ファイルの種類」

拡張子「JAR」を選択した状態で「詳細設定」

アクション「open」を「編集」

「アクションを実行するアプリケーション」
のところに書かれている"コマンド"が
適切かどうかチェックする。


それを#1さんのリンク先の内容と照らし合わせる。
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。

解決することが出来ました。大変助かりました。

お礼日時:2005/09/05 04:15

そうですね。

レジストリとかって Java 屋からすればあまり馴染みのないものですから面倒でしたらOSからの再インストールもありかもしれません。
しかし、jarファイルのダブルクリックによる起動って本当に重要でしょうか?
もしかすると Java Web Start の方が良いかもしれません。自動的に更新できるし、綺麗なアイコンも付けられるし。
    • good
    • 2
この回答へのお礼

度々アドバイスありがとうございます。

Java屋というかただの初心者です。w

一応解決したのですが
javaアプレットを実行することが出来ないので
やはり入れなおそうかと思っています。

お礼日時:2005/09/05 04:17

Windows で jar ファイルをダブルクリックで起動するには


・jar ファイルのマニフェストにメインクラスが適切に記載されている
・レジストリに javaw と jar ファイルの関連づけが適切にされている
といった条件が揃うことが必要です。
マニフェストについては java -jar にで起動できるから問題なさそうですね。
すると後者が怪しいところです。レジストリにどのように登録されているべきかは先のリンク先にありますので確認してみてはいかがでしょうか。
アンインストールができないほどレジストリに不整合が生じているのであれば、正常に起動できる環境とレジストリを見比べてみるのもよいかもしれません。
    • good
    • 0
この回答へのお礼

再び回答ありがとうございます。

OSを入れなおして1からやればうまく行きますか?
手に負えなさそうなのでそうしようかと思っています。

お礼日時:2005/09/04 22:41

似たような話題がありました。


http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

解決しないようでしたらお使いの OS 、また java -jar jarファイル名 を実行したときにどのような例外がでるか(または正常に実行できるか)教えてください。

この回答への補足

jarファイルの関連付けは「Java(TM) 2 Platform Standard Edition binary」となっています。

WindowsXp professionalをつかっております。

コマンドプロンプトで[java -jar *.jar]のコマンドを打てば正常に起動,実行できます。

ひとつ自分で原因と考えられる事はJREを何度かインストールとアンインストールを
繰り返しているうちにアンインストールが出来なくなってしまいました。
インストールしてもアンインストールしてからやり直してくださいというメッセージが出ます。
出来ないので強制アンインストールをソフトを使ったのですがやはりアンインストールは出来ませんでした。

回答よろしくお願いします。

補足日時:2005/09/03 02:06
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjarファイルとjava.exeの関連付けについて

jarファイルの関連付けについて質問致します。
宜しくお願い致します。

jarファイルをマウスのダブルクリックで実行させようとしても
何故かうまく実行出来ませんでした。

色々調べると一つの方法として、java.exeに関連付けさせる
方法があるとサイトでの記事がありました。

具体的には、「C:\programFiles\Java\jre●●\bin\java.exe」
とありました。

具体的には、どのような方法で「java.exe」と「jarファイル」
の関連付けをさせるのでしょうか。

宜しくお願い致します。

Aベストアンサー

ちょろっと検索するだけでそこいらじゅうで紹介されてますが、
見つかりませんかね?

Windows10 の場合

Jarファイルを右クリックし[プログラムから開く] で
「このファイルを開く方法を選んでください」というタイトルの
ダイアログを出して

「Java Platform SE Binary」

を選ぶ

「常にこのアプリを使って .jar ファイルを開く」

にチェックを入れる。

というのが最も簡単だと思います。

コマンド好きなら ftype とassocでもできますけど、
ちょっと大変です。

Qjarファイルをダブルクリックで実行したいのですが

こんにちは。今、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  となっていました。

もし悪い所がございましたら、アドバイスの方よろしくお願いいたします。

こんにちは。今、Windows Vistaと、Java SE 6 UPDATE 4でJavaの勉強をしているのですが、以前書籍を読んでjarファイルを作った時は、コマンドラインからしか実行しなかったのですが、どうもダブルクリックでも実行できるような事が各サイトに載っていましたので、あるサイトを参考にHelloWorld.jarというファイルを作ったのですが、コマンドラインからは動作できますが、ダブルクリックしても「このファイルを開けません」というダイアログボックスが出てきたので、「インストールされたプログラムの一覧からプロ...続きを読む

Aベストアンサー

こんにちは、

コマンドラインで、実行できるけど、
ダブルクリックで、

Could not find the main class. Program will exit 

が出る、同様な、例を見つけました。

http://www.javaroad.jp/bbs/answer.jsp?q_id=2008072616203646

これによると、もしかすると、関連付けかもしれません

関連付けは、以下のURLのようになっているでしょうか。??

http://www.s-cradle.com/support/sophiacompress_java/scj_jre_change.html#parameter

関連付けが上手く行っていなくとも同じエラーが出るみたいです。


Could not find the main class. Program will exit 
で検索すると、沢山、ヒットするようです。

eclipseのせいだとか、書いてあるのもあるので、

netbeansをインストールして試してみるのも良いかも知れません。

こんにちは、

コマンドラインで、実行できるけど、
ダブルクリックで、

Could not find the main class. Program will exit 

が出る、同様な、例を見つけました。

http://www.javaroad.jp/bbs/answer.jsp?q_id=2008072616203646

これによると、もしかすると、関連付けかもしれません

関連付けは、以下のURLのようになっているでしょうか。??

http://www.s-cradle.com/support/sophiacompress_java/scj_jre_change.html#parameter

関連付けが上手く行っていなくとも同じエラーが出るみ...続きを読む

QJARファイルをEclipseを使って作成したのですが、ダブルクリック

JARファイルをEclipseを使って作成したのですが、ダブルクリックで起動することができません。デスクトップにJARファイルを保存したので、コマンドプロンプトでデスクトップまで階層を移動して"java -jar Sample.jar"と入力した時は問題なく起動できたのですが、ファイル自体をダブルクリックで起動がどうしてもできません。



初歩的なことかと思いますが、何卒よろしくお願いいたします。

Aベストアンサー

同じようなことで悩んだことがあります。
以下のURLのページで解決しました。

質問者さんも同じようなエラーが出ているようですので
もしかしたら解決できるかも。

参考URL:http://www.searchman.info/tips/2130.html

Q実行可能jarを実行できない

PCを替えたら実行可能jarの実行に"javar -jar"が必要になりました。
ubuntu10.04(oracle java 1.6)のeclipseで作り、別のubuntu10.04(oracle java 1.6)なPCで使っていた実行可能COMMAND.jarがubuntu12.04(oracle java 1.7)で実行すると
"バイナリファイルを実行できません"
となります。
COMMAND.jarへのパスは通っています。
$ java -jar COMMAND.jar
なら実行できます。
どうすればjavaコマンド無しに実行できますでしょうか。
2013年6月2日

Aベストアンサー

なんというか magic っぽい.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6211008
で治るかどうかは知らん.

Qjarファイルをバッチで実行させたい

 今晩は。
 jarファイルをコマンドプロンプト画面からバッチで実行させようとして、
バッチを下の様に書いてやりましたが、うまく動作しません。
 一体どこが悪いのでしょうか。

 「java -jar C:\Documents and Settings\デスクトップ\test.jar  pause」

 実行すると「>pause 続行するには何かキーを押してください . . .」と表示されますが、
キーを押すと画面が消えてしまいます。
 (実行が終わって、コマンドプロンプト画面が閉じられているみたいな・・・)

 また、pauseを削除すると、やはり一度はコマンドプロンプトの画面が表示はされますが、
コマンドプロンプト画面が閉じられます。(実行はしているような気がするのですが、、、)

 どのようにバッチの内容を変更すれば、実行画面が表示されたまま、プログラムが止まるのでしょうか。
 宜しくお願いします。

Aベストアンサー

java -jar "C:\Documents and Settings\デスクトップ\test\test.jar"
スペースを含むファイル名やディレクトリ名は、""でくくらないと、スペースが区切りだとして処理されます。

> Unable to access jarfile C:\Documents

「C:\Documents」というjarファイルが無い、ってエラーメッセージが出てますよね?

QEclipseで、配布可能なJARファイルを作成する方法が解りません。

Eclipseで、何も無いウインドウを開くというだけのアプリケーションを作ろうとしました。
ライブラリに、
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar
を追加しております。

配布できる形式にしたいため、Jarファイルを作成しました。
プロジェクトにMETA-INFというフォルダを作成し、そこに「Manifest.mf」というファイルを作成し、以下のように記述しました。

Manifest-Version: 1.0
Class-Path: "C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar"
Main-Class: view.TestWindow

ちなみに、「view.TestWindow」というのがmainメソッドのあるクラスの名前です。

JARファイルをエクスポートして、コマンドライン上から以下のように入力しました。

> java -jar TestWindow.jar

結果は、以下のようなエラーが表示されました。

Failed to load Main-Class manifest attribute from
TestWindow.jar

多分、「Main-Class」の情報がマニフェストファイルから見つからないと言っているんだと思いますが、Eclipse上からエクスポートする際にはちゃんと場所を指定しています。何が問題なのか解りません。

将来的には、違うマシン上で動作するアプリケーションを作りたいと思っているのですが、最初でいきなり躓いてしまいました。
どなたか教えて頂けないでしょうか。

Eclipseで、何も無いウインドウを開くというだけのアプリケーションを作ろうとしました。
ライブラリに、
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar
を追加しております。

配布できる形式にしたいため、Jarファイルを作成しました。
プロジェクトにMETA-INFというフォルダを作成し、そこに「Manifest.mf」というファイルを作成し、以下のように記述しました。

Manifest-Version: 1.0
Class-Path: "C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar"
Main-Class: view.Tes...続きを読む

Aベストアンサー

swtのライブラリを使用するためのマニフェストファイルの書き方について、過去に調査、回答いたしました。

http://okwave.jp/qa2457294.html

関連知識としてご参考いただければ幸いです。

Qjarファイルはzipファイルと同じだというけれど、無圧縮ですか?

いつもお世話になっています。

jarファイルについてなのですが、
いろいろ調べてみたところ、
「jarファイルはzipファイルの拡張子を『.jar』に変えたもの」
という説明が随所に見られます。

しかし、zip圧縮にも、通常?圧縮だったり、無圧縮だったり、といろいろな圧縮方法があると思うのですが、
「jarファイルは、無圧縮zipファイルの拡張子を『.jar』に変えたもの」

というのが正しい解釈なのでしょうか?
jarファイルを解凍して、その後、通常zip圧縮をしたら、元のファイルよりもファイルサイズが小さくなってしまったので、無圧縮なのかな・・と思い、質問させていただきました。

ご存知の方、よろしくお願いいたします。

Aベストアンサー

試しにjar.exeを使ってみましたが若干圧縮されていました。
zipは圧縮の際、圧縮率を指定できます。(確かzlibで10段階)
圧縮率を上げれば、ファイルサイズは小さくなりますが
その代わりエンコード、デコードに時間がかかるようになります。
jar作成のものは展開速度を上げる等の理由で圧縮率が
低く設定されているのではないでしょうか?

QMinecraft Forgeがうまく起動しない。

 前まではフォージのプロファイルでPLAYを押すと普通にプレイできていたんですが、昨日フォージのプロファイルでPLAYを押すと、普通なら読み込みが始まって読み込んだあとにランチャーが消えてMinecraftが起動するはずなんですが、なぜかMinecraftが起動されません。「.Minecraft」ファイルも消して、ランチャーを再インストールして、フォージを導入してみたんですけど、やはり読み込めるけどMinecraftが起動しません。どうしたらいいのでしょうか?

Aベストアンサー

恐らくGame Directoryの設定値が文字化けているのが原因ではないかと推測しているのですが
質問の内容に書かれている説明の情報量が少なすぎていまいち状況がつかみきれていません。

Game Directoryの値を修正するには以下の点を確認してください。
1.起動したいプロファイルを選択する
2.Edit Profileボタンを押下する
3.Game Directory、Executable、JVM Arguments等を確認し文字化けている個所があったら正しい値に修正する。

上記で解決できなければ以下の部分についての情報を確認しないと明確な回答ができません。

・プレイできなくなる前に何かしませんでしたか?
例えば…OptiFineのインストール、LiteLoderのインストール、Forgeのバージョンアップ、新しいForgeのインストール等
・あなたのWindowsのユーザ名はどんなユーザ名ですか?
ひらがな、カタカナ、漢字、ハングル文字、アラビア文字等、ウムラウト等、英語アルファベット以外の文字を使っていませんか?

あとできれば起動時のエラーログを見せてもらいたいです。

恐らくGame Directoryの設定値が文字化けているのが原因ではないかと推測しているのですが
質問の内容に書かれている説明の情報量が少なすぎていまいち状況がつかみきれていません。

Game Directoryの値を修正するには以下の点を確認してください。
1.起動したいプロファイルを選択する
2.Edit Profileボタンを押下する
3.Game Directory、Executable、JVM Arguments等を確認し文字化けている個所があったら正しい値に修正する。

上記で解決できなければ以下の部分についての情報を確認しないと明確な回答ができ...続きを読む

Qアプリケーションをダブルクリックで起動できるjarファイル

jarファイルを作成すると、ほとんどのアプリケーションはダブルクリックで実行できるのですが、ひとつだけダブルクリックしても実行できないものがあります。どうしてなんでしょうか?誰か、同じ経験をされた方、理由を知っている方は、ご回答お願いします。

jar cvfm <jarファイル名> <マニフェストファイル名> <クラスファイル名>
で作成してます。クラスファイルは内部クラスも含めてます。

よろしくお願いします。

Aベストアンサー

試しにjarファイルのダブルクリックでなくて、コマンドプロンプトで
java -classpath jarファイル名 クラス名
でなら実行できますか?
・これでも動かない場合:publicなmainメソッドが無かったりしません?
・これで動く場合:マニフェストファイルに誤りがあるのでは?

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング