ご存知のとおり、すべてのJavaプロセスはタスクマネージャーにjavaw.exeとして表示されます。そのようなすべてのJavaプロセスのコマンドラインを取得したいと思います。ProcessExplorerと呼ばれるツールは同じことをしますが、それはすべてGUIに表示され、私は同じもののプログラミングソリューションを探しています。
これは、 ProcessExplorerツールからのスナップショットです。
何か案は??
ご存知のとおり、すべてのJavaプロセスはタスクマネージャーにjavaw.exeとして表示されます。そのようなすべてのJavaプロセスのコマンドラインを取得したいと思います。ProcessExplorerと呼ばれるツールは同じことをしますが、それはすべてGUIに表示され、私は同じもののプログラミングソリューションを探しています。
これは、 ProcessExplorerツールからのスナップショットです。
何か案は??
あなたはWMICでそれを得ることができます
C:\> wmic process where(name="javaw.exe") get commandline
コマンドラインソリューションが役立ち、 Windows Powershellを利用できる場合は、次のようなものを使用できます。
PS> $c = Get-WmiObject Win32_Process -Filter "name='javaw.exe'" | select-Object CommandLine
PS> $x.CommandLine
"C:\Program Files (x86)\Java\jre7\bin\java.exe" "-Djava.class.path=C:\\PROGRA~2\\Java\\jre7\\classes" ...
コマンドjps
を使用してJavaプロセスを検索します
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jps.html
Windowsのコマンドプロンプトで、以下のコマンドを実行できます
wmic process where(name="javaw.exe") get commandline
コマンドプロンプトを使用した出力例
CommandLine
"C:\Users\Public\agent\jre\bin\javaw.exe" -cp .\agent-jar-with-dependencies.jar com.agent.Runner
PowerShellプロンプトを使用すると、以下のコマンドを実行できます
Get-WmiObject -Class Win32_Process -Filter "Name='javaw.exe'" | select-Object CommandLine
Powershellコマンドを使用したサンプル出力
CommandLine
-----------
"C:\Users\Public\agent\jre\bin\javaw.exe" -cp .\agent-jar-with-dependencies.jar com.agent.Runner