43

Java アプリケーションを実行するとき、それに与えられるプロセス名は通常、java.exeまたはjavaw.exeです。しかし、アプリケーションの名前で呼び出されるようにするにはどうすればよいでしょうか?

4

10 に答える 10

42

これらのメソッドは、多くの Java プロセスが実行されているサーバーに適しています。また、(jps を使用せずに) 正しい jvm をすばやく見つける方法が必要な場合に適しています。アプリケーションの場合は、launch4j または別のラッパーが適していると思います。

Unix では、シェル sript から起動する場合 (少なくとも bash の場合、および他のまともなシェルの場合)、次を使用できます。

exec -a goodname java ...

を起動javaし、0 番目の引数として「goodname」を渡します。これは、プロセス名として表示されますps

おそらくより良い代替手段 ( にも機能するようですtop) は、シンボリックリンクを作成することです: ln -s /usr/bin/java /usr/local/bin/kallekula.

Windows のショートカットではうまくいきませんが、Windows Vista/7 は を使用したシンボリック リンクをサポートしていmklinkます。それはうまくいくかもしれませんが、私はテストしていません。exec -aWindowsのcygwin bashでも動作するかどうかはわかりません。

于 2009-05-19T15:01:24.577 に答える
18

launch4jを確認してください。これは、実行可能ファイル名を割り当てることができる実行可能ラッパーです。

于 2009-05-19T13:42:30.383 に答える
11

独自のカスタム ビルド実行可能ファイルで JNI を介して Java を起動しない限り、プロセス名は常に java.exe になります。

この実行可能ファイルを生成できる Java ランチャー/ラッパーがいくつかあります。

于 2009-05-19T13:43:33.563 に答える
9

これは Windows に固有のものです。taskkill
を使用して特定の Java プログラムを強制終了する必要があるという同じ問題に直面していました。Java プログラムを実行すると、tasklistに Image name がjava.exeに設定された同じプログラムが表示されました。ただし、taskkill /F java.exeを使用して強制終了すると、意図したもの以外のすべての Java アプリケーションが停止しますが、これは必要ありません。

したがって、次を使用して同じ Java プログラムを実行します。

"MyProgramName" java java-program.. を開始します。

ここでstartコマンドは新しいウィンドウを開き、ウィンドウのタイトルをMyProgramNameに設定して Java プログラムを実行します。

この Java プログラムを強制終了するには、次の taskkill コマンドを使用します。

taskkill /fi "MyProgramName"

Java プログラムは強制終了されるだけです。残りは影響を受けません。

于 2013-12-05T12:16:08.013 に答える
5

Sun JDK を使用している場合は、「jps」コマンド ライン ツールを使用して、ボックスで実行されている Java プロセスの詳細なリストを取得することもできます。

于 2009-05-19T14:52:32.363 に答える
3

あなたが本当に求めているのは、後で正しいプロセスを終了する方法であると仮定すると、別の解決策は次のとおりです。

実行ps -ef | grep javaすると、次のようなリストが表示されます。

 mruser    7518  7505  4 11:37 pts/3    00:00:00 /usr/bin/java -classpath MRD3030_Linked.jar peralex.MyApp

次にpkill -f peralex.MyApp、正しいプロセスを強制終了します。

于 2009-06-05T12:03:15.047 に答える
2

すべての種類の exec が -a フラグをサポートしているわけではありません。そうでない場合、argv0プログラムは同様のことを行います。

于 2009-12-16T21:52:07.107 に答える