以下のコードは、すべての JVM パラメータ、メイン メソッドに渡される引数、およびメイン クラス名を表示する必要があります。
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.List;
public static void main(String[] args) {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
List<String> jvmArgs = bean.getInputArguments();
for (int i = 0; i < jvmArgs.size(); i++) {
System.out.println( jvmArgs.get( i ) );
}
System.out.println(" -classpath " + System.getProperty("java.class.path"));
// print the non-JVM command line arguments
// print name of the main class with its arguments, like org.ClassName param1 param2
System.out.println(" " + System.getProperty("sun.java.command"));
}
getInputArgumentsの javadoc
main メソッドへの引数を含まない Java 仮想マシンに渡された入力引数を返します。Java 仮想マシンへの入力引数がない場合、このメソッドは空のリストを返します。
一部の Java 仮想マシンの実装では、複数の異なるソースから入力引数を取得する場合があります。たとえば、「java」コマンド、環境変数、構成ファイルなど、Java 仮想マシンを起動するアプリケーションから渡される引数などです。
通常、「java」コマンドのすべてのコマンドライン オプションが Java 仮想マシンに渡されるわけではありません。したがって、返される入力引数には、すべてのコマンドライン オプションが含まれていない場合があります。
jpsもご覧ください。
これは、メイン クラスの完全なクラス名と JVM オプションを含む、すべての Java プロセスの完全なコマンド ラインを取得できる Java プログラムです。
Java Application Launcherへのリンクを含む、
さまざまなJVM ツールの優れた概要を見つけることができます。