如何获取启动该过程的命令行
2022-09-01 23:27:09
从 Java,是否可以获取包含启动应用程序的所有参数的完整命令行?
System.getEnv()
并且似乎不包含这些值。System.getProperties()
从 Java,是否可以获取包含启动应用程序的所有参数的完整命令行?
System.getEnv()
并且似乎不包含这些值。System.getProperties()
其中一些可以从 RuntimeMXBean 获得,通过调用 ManagementFactory.getRuntimeMXBean() 获得。
然后,您可以调用getInputArguments()
Javadocs说:
返回传递给 Java 虚拟机的输入参数,该虚拟机不包括 main 方法的参数。如果 Java 虚拟机没有输入参数,则此方法返回空列表。
某些 Java 虚拟机实现可能从多个不同的源获取输入参数:例如,从启动 Java 虚拟机的应用程序传递的参数,如“java”命令、环境变量、配置文件等。
通常,并非所有“java”命令的命令行选项都传递到 Java 虚拟机。因此,返回的输入参数可能不包括所有命令行选项。
在Linux中,当您获得该命令的输出时,这应该是可能的(在shell中运行)
cat /proc/$PPID/cmdline
但这根本不是可移植的,因此不应该在Java中使用......