【发布时间】:2017-05-31 10:21:54
【问题描述】:
在 java 中有没有办法获取传递给main 函数之外的程序 的命令行参数?
我正在编写一些代码,这些代码是我无法控制的大型应用程序的一部分,并且我想知道命令行参数是什么,而无需修改 main 函数。
注意:我见过how to get the JVM arguments 和how to get the arguments in main,但想在我们应用程序的其他部分中获取它,而不是将它们保存在我无法控制的main 函数中。
【问题讨论】:
-
好吧,如果您知道这些参数的名称(并且想首先使用名称),您可以将它们作为系统属性传递。因此,您可以通过
System.getProperty(name)访问它们。 -
你可以试试属性“sun.java.command”。它使您可以访问用于执行 jar 的完整命令(我会检查文档,这是否可以在 JVM 实现之间移植)。
-
@BradParks 更新:正如前缀“sun”所暗示的,此属性很可能是 oracle-jre 特定的系统属性。我还没有找到任何资源来验证这一点,所以请小心处理。
-
这也适用于带有 oracle jre 的 Windows 7。
标签: java command-line-arguments