2011-12-27 10 views
1

を実行するための.jarを作成してください、私はHello Worldのを使用します...どのように私は簡単にするために、コマンドラインアプリケーション

public class HelloWorld{ 

    public static void main (String [] args){ 
     System.out.println("Hello World"); 
    } 
} 

コンパイル、あなたが想像するよう細かい動作します。次に含むファイルManifest.txtを作っ:

Main-Class: HelloWorld 

が、その後走った:私は結果Hello.jarをダブルクリックしたときに

jar -cfm Hello.jar Manifest.txt *.class 

をしかし、何も起こりません。私はコンソールが少なくともすぐにポップアップすることを期待しています... (私は実際入力を待つより精巧なプログラムを持っています)

これはなぜ機能しないのでしょうか?これは、タスクマネージャ(Windowsの場合)が、

+0

'java -jar Hello.jar'でコマンドラインからプログラムを実行するとどうなりますか? – tscho

+0

しかし、私はコンピュータで役に立たない人に私の瓶を送りたいです。ダブルクリックが必要です – Mead3000

+0

さて、コマンドラインから実行すればどうなるか尋ねました。この場合、エラーはありますか? – tscho

答えて

1

は、コマンドラインから実行してみていないのcmd openningでプロセスを開始している

java -jar /path/to/YourJar.jar 

あなたはMain-Classエントリ


を持っていることを確認してください参照:

+0

しかし、私はコンピュータで役に立たない人に私の瓶を送信したいです。 – Mead3000

+0

あなたはクライアントにJREを実行させる必要があります。OSに応じて、 '.jar'ファイルを' JRE'として開くようにデフォルトプログラムを設定することもできます。 –

+0

ok ....どうすればそれを動作させることができますか? – Mead3000

2

マニフェストファイルのMain-Class行は空行が続いていることを確認してください!
しかし、この仕様では、マニフェストファイルの最後の行を含めて、改行文字で終わるように指定しています。

EDIT:
問題は、ダブルクリックするとちょうどの場合は、(Windowsのを想定)してみてください:

assoc .jar=jarfile 
ftype jarfile="<JRE directory>\bin\javaw.exe" -jar "%1" %* 

(実際の設定を確認するには、引数なしでこれらを使用)

あなたのクライアントになりますJavaプログラムを実行するにはJREが必要です。通常、上記の設定はJREのインストールによって行われます。

EDIT2:代わりにjavaw.exe
使用java.exe(あなたのプログラムはGUIを持っていない場合)標準コンソールを参照するには

+0

これはありがとう... – Mead3000

+0

タスクマネージャをチェックした後、javaw.exeプロセスを開始していますが、cmdはオープンしていません – Mead3000

+0

javawはjavaウィンドウなしです。 *ウィンドウ*が表示されません) – jpalm

0

マニフェストはMANIFEST.MFという名前する必要があり、それがトップレベルに存在する必要がありますディレクトリMETA-INFと呼ばれます。そうすればうまくいくはずです。

+0

私はそれらが作成されていることを確信していますjarファイルが作成されます。 jar -tf Hello.jarは私にそれを与える – Mead3000

0

JSmoothを試してください。あなたのjarファイルを取り出し、それをWindowsの実行可能ファイルにラップします。

関連する問題