2016-08-26 6 views
0

私はJavaWSを使用してアプリケーションを起動していますが、タスクマネージャのプロセスリストの名前は、JNLPファイルで指定したものではないため、そのアプリケーションが実行中であるかどうかを確認する方法を示します。タスクマネージャのプロセスリストにあるプロセスの一覧から、さまざまなJavaWSアプリケーションを区別する方法はありますか。

注意。私はタスクマネージャのプロセスリストをチェックしましたが、そのプロセスの名前はjavaw.exeであり、JavaWSを使用しているすべてのアプリケーションは同じ名前を持っています。私の質問は、ユーザーが複数のJavaWSアプリケーションを起動した場合、確認したいプロセスをどのように特定できるかということです。私はプロセスのPIDを取得することを考えましたが、残念ながらプロセスのPIDを取得する方法はありませんでした。私はWindowsで作業しています。

+0

も参照してください[XY問題とは何ですか?](http://meta.stackexchange.com/q/66377) –

+0

ちょっと@Andrew、私は私の質問が間違っていると思います。私は、同じアプリケーションの別のインスタンスを起動するときに、何らかのアクションを実行する代わりに、プロセスが実行中であるかどうかを調べる必要があります。私のアプリケーションでは、前のインスタンスが既に実行されている場合、同じプロセスの別のインスタンスを起動することはできません。タスクマネージャのプロセスリストで名前が同じであるため、JavaWSを使用しているプロセスを区別する方法を見つけ出す方法を尋ねています。私のアプリケーションとは別に、JavaWSを使用しているかもしれない他のアプリケーションがあるかもしれません。 –

答えて

0

Windows7では、タスクマネージャに表示する列のリストを選択できます。 View -> Select Process Page Columns

移動し、表示されるCommand line列を選択します。

あなたはクラスパスを指定してコマンドラインによって異なるjavawをプロセス間で区別できるようにする必要があり、メインクラス名など

2

そのアプリケーションがユーザーの中で実行しているかどうかをチェックする..how

本質的にOS固有のアプローチである検査プロセスに頼る必要はありません。

JNLP APIはSingleInstanceService ..

..allow(S)アプリケーションシングルトンとして自身を登録するには、Java Web Startの下に立ち上げ、ユーザーが起動しようとするときに、新しいパラメータセットに渡すことができますそれらの新しいインスタンス。

あなたのコードは、現在のアプリケーションを更新するか、前面に表示するか、新しいインスタンスを起動するかどうかを決定します。

+0

ちょっと@Andrew、私はあなたが私の質問を間違っていると思います。私は、同じアプリケーションの別のインスタンスを起動するときに、何らかのアクションを実行する代わりに、プロセスが実行中であるかどうかを調べる必要があります。私のアプリケーションでは、前のインスタンスが既に実行されている場合、同じアプリケーションの別のインスタンスを起動できません。タスクマネージャのプロセスリストで名前が同じであるため、JavaWSを使用しているプロセスを区別する方法を見つけ出す方法を尋ねています。私のアプリケーションとは別に、JavaWSを使用しているかもしれない他のアプリケーションがあるかもしれません。 –

+0

* "プロセスが実行されているかどうかを調べるだけです。"あなたが言及しているこれらの「プロセス」ですか?彼らが*あなたのアプリの他のインスタンスであるならば、*それは 'SingleInstanceService'を与えても不要です。それがアプリなら。あなたのアプリによって作成されたものではありません。そうすることの究極のポイントは何ですか?それを置く別の方法は、あなたがエンドユーザーに提供しようとしている機能は何ですか?あなたの問題の説明はあまり明るくないので、私はあなたにXY問題に関する記事を読ませることを強く勧めます。あなたがそれを理解していれば、必要とされるものをよりよく記述できるようになるでしょう。 –

+0

* "**私のアプリケーション** **同じアプリケーション**の別のインスタンスは起動できません" *はい、どのように簡単にフレーズするかわかりません。 **これは 'SingleInstanceService'のためのものです!**実際には、あなたは新しいアプリケーションを無視することができるという点で、それ以上の*以上をカバーしています。あなたは(プログラマー)が現在のアプリケーションのパラメータを変更することができます。 ***または**(ここでは関係ありません)では、アプリの2番目のインスタンスを許可することができます。開く)。 –

関連する問題