プロが教えるわが家の防犯対策術!

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



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

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

A 回答 (4件)

同じようなことで悩んだことがあります。


以下のURLのページで解決しました。

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

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

起動したときに、どのようになるプログラムなのでしょうか?


GUIのウィンドウが開いて、ボタンを押したりして操作するものでしょうか?
CUI用のプログラム( printlnで文字を表示したりする)でしょうか?

後者で一瞬で終わるものだと( Hello Worldとか )
DOS窓が開く→実行されるが一瞬で終了→DOS窓が自動で閉じる
となって、実行してるかわからないことがあります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。フレームが表示される簡単なものです。

お礼日時:2010/07/17 00:02

"jar"という拡張子がjavaに関連付いていないのでは?


ファイルをダブルクリックすると「規定のプログラム」で実行されます。
関連付けの方法はOSによって違うようですので「拡張子 関連付け」などのキーワードでググってください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。一応拡張子の関連付けは既に試みたのですが、駄目でした。

お礼日時:2010/07/15 12:26

Eclipseのprojectのフォルダの上とかで右クリックで



エクスポート→Java→jar→実行可能なjarファイル

で出来ないでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。その手順で作ってみましたが、ダブルクリックで起動することはできませんでした。

お礼日時:2010/07/15 04:14

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

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

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

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

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

Qjarファイルをダブルクリックで実行

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

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

Aベストアンサー

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

もっと詳細に調べる。

「フォルダオプション」

「ファイルの種類」

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

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

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


それを#1さんのリンク先の内容と照らし合わせる。

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

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

Qmain()を持つクラスが2つ以上あるexecutable jar

main()を持つクラスが2つ以上あるexecutable jar
を作成して、
main()を持つクラスを
必要に応じて、起動仕分けることは
可能なのでしょうか?

もし、可能であるとすれば
マニフェストファイルには
どのように記述すればよいのでしょうか?

そして、
java -jar
コマンドで起動するときにどのようにすればよいのでしょうか?


不可能であれば不可能であるということを
教えてください。

以上

Aベストアンサー

マニフェストファイルを用意しなくても、クラス名を直接指定する通常のコマンド形式
java -classpath <jarファイル名> <mainがあるクラス名> <コマンドライン引数>
で <mainがあるクラス名> を変えれば起動仕分けることは可能です。

マニフェストファイルには Main-Class 属性を一つしか定義できないので、クラス名を指定しない
java -jar <jarファイル名> <コマンドライン引数>
の形式で起動仕分けることは出来ないと思います。

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は、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QEclipse・プロジェクトで、フォルダをパッケージとして認識する

Eclipseを使っているのですが、
プロジェクトを立ち上げたときに、
普通フォルダをちゃんとパッケージとして認識してくれるのですが、パッケージのアイコンが普通のフォルダのアイコンの形をしたままでパッケージとして認識してくれないことがあります。

このとき、左のパースペクティブ(フォルダとかのツリー図)には.classファイルも.javaファイルと一緒に出てきます。

コンパイルはしているようですが、エラーの×印などが出てきません。


パッケージをパッケージとして認識してほしいので、アイコンがフォルダの絵からパッケージのアイコンになった状態にしたいのですが、どのようにすればよいでしょうか?

わかりにくい説明で申し訳ありませんが、もしわかりましたら教えていただけますと助かります。

Aベストアンサー

こんにちは。

左側に多分アイコンがあると思います。
(なければファイルにプラスマークがついたアイコンをクリックしてください)
それのファイルの絵がついているアイコン(リソース)と書かれている状態ですと、アイコンがフォルダで表示されますし、classファイルも一緒に表示されます。

Jというマークがついているアイコン(JAVA)を選択すると、ご希望のパッケージとして表示されます。

少し分かりにくくてすみません。
分からなかったらもう一度聞いてください。
頑張って分かりやすく説明できるようにしたいと思います

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ファイルが無い、ってエラーメッセージが出てますよね?

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

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

QEclipseでクラスファイルが生成されない

Eclipse(Helios)、java(JDK1.6)の環境で作業をしています。

指定した出力フォルダにクラスファイルが生成されません。
先日までは生成されていました。
コンパイルエラーはありません。

Javaのビルドパス ⇒ ソース ⇒ デフォルト出力フォルダの指定です
ソースフォルダごとの出力フォルダの指定を可能にするはオフにしてあります。

設定は少しくらい変えたかも知れませんが、重要なところは変えていないと思います。
# あやふやですみません。
考えられる理由を教えてください。

Aベストアンサー

Eclipseのバグとか?

プロジェクトが複数あって
同じクラスが存在していたりすると
デバッグ中に別のプロジェクト見たりもするし

それ以外のプロジェクトを閉じるなりすると
上手くいくかも?

QVBAでブックを非表示で開いて処理して閉じる方法

エクセルVBAで質問なのですが、別のブックを非表示で開いて処理をし、処理が終わったらそのブックを閉じるマクロを作りたいです。

ネットで方法をたくさん調べたのですが、うまくいきません。
ActiveWindow.Visible = Falseを使うと非表示でブックを開くのですが、次の処理をしようとすると非表示のブックのシートがselectで選択できないのかエラーが出てしまいます。

どなたか良い方法をご存じないでしょうか?


↓今作ろうとしているマクロを参考に書いておきます。

ブックA内に書かれているブックBを非表示で開く

処理(ブックBのシート内の表に記入漏れの空白セルがあればブックAに空白セルの番地を表示させる)

ブックBを非表示のまま閉じる


非表示にせずにブックBを開けばうまく処理が完了するのですが、ActiveWindow.Visible = Falseを入れて非表示でブックBを開くと処理が開始しないという状況です。

Aベストアンサー

こんにちは

>非表示のブックのシートがselectで選択できないのかエラーが出てしまいます。
手作業でも非表示のブックでシートやセルを選択しようとしても無理ですよね?

VBAの記述の方法をSelectやActivateなどを用いないように書き直せば、ご希望のことは実現可能だと思います。

例として、以下では"TestBook"というブックを開き、そのシート1内でA1:C20の範囲の空白セルを探して、メッセージボックスにカンマ区切りで結果を表示します。
(殆ど時間がかかりませんので、非表示にしなくても同じだとは思いますが…)

Sub sample()
 Dim wb As Workbook, c As Range
 Dim str As String

 str = ""
 Set wb = Workbooks.Open(ThisWorkbook.Path & "\TestBook.xlsm")
 Windows(wb.Name).Visible = False

 For Each c In wb.Worksheets(1).Range("A1:C20")
  If c = Empty Then
   If str <> "" Then str = str & " , "
   str = str & c.Address
  End If
 Next c
 wb.Close SaveChanges:=False

 MsgBox str
End Sub

※ わざわざ『非表示』に設定しなくても、現在のウィンドウをアクティブにすることで、新しく開いたウィンドウを(裏側に)隠すこともできますね。

こんにちは

>非表示のブックのシートがselectで選択できないのかエラーが出てしまいます。
手作業でも非表示のブックでシートやセルを選択しようとしても無理ですよね?

VBAの記述の方法をSelectやActivateなどを用いないように書き直せば、ご希望のことは実現可能だと思います。

例として、以下では"TestBook"というブックを開き、そのシート1内でA1:C20の範囲の空白セルを探して、メッセージボックスにカンマ区切りで結果を表示します。
(殆ど時間がかかりませんので、非表示にしなくても同じだとは思いま...続きを読む


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

人気Q&Aランキング