Java - 如何在main方法之外获取命令行参数?

15

在Java中,有没有一种方法可以获取传递给程序的命令行参数,main函数之外?

我正在编写一些代码,它是一个我无法控制的更大应用程序的一部分,我想知道命令行参数是什么,而不修改main函数。

注意:我已经看到了如何获得JVM参数如何在main函数中获取参数,但我希望在我们应用程序的其他部分中获取它们,而不必将它们保存在我无法控制的main函数中。


1
还要检查:https://dev59.com/PXE85IYBdhLWcg3w8IM4 - JFPicard
1
你可以尝试使用属性"sun.java.command"。它可以让你访问完整的命令,该命令用于执行jar文件(我会查看文档,以确定这是否在JVM实现之间是可移植的)。 - user4668606
@Paul - 我刚试了一下,在我的 Mac 上至少完全有效... 谢谢你的建议!获取它的代码行几乎是 System.getProperty("sun.java.command"); - Brad Parks
2
@BradParks 更新:正如前缀“sun”所示,这个属性很可能是针对Oracle-JRE特定的系统属性。我没有找到任何资源来验证这一点,请小心处理。 - user4668606
2
这个也适用于在Windows 7上使用Oracle JRE。 - chris
显示剩余3条评论
1个回答

13
在使用以下方式启动JVM时:java -DmyArgument=myValue -jar your.jar,你可以在Java代码中的任意地方通过String myArg = System.getProperty("myArgument");获取myArgument的值。

2
谢谢...这很有帮助,但我要找的参数不是作为“-D”样式参数传递的... - Brad Parks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接