Java是否与C#的Environment.GetCommandLineArgs()等效?

Mac*_*zie 7 java command-line-arguments

我知道我可以在"main"方法中获取命令行参数,但我需要能够间接获取它们.

谢谢你的帮助.

小智 9

以下表达式正是您想要的:

System.getProperty( "sun.java.command")

  • 这仅在某些时候有效,因为这不是保证存在的属性。我不会单靠这个。通常,从设计角度来看,将值存储在某个位置更好。 (2认同)

bma*_*ies 2

您可以列出线程,找到主线程,然后沿着堆栈跟踪向下爬行,直到找到对 main 的调用,然后提取参数。

\n\n

更新评论指出这本身并不能完全起作用,我认为评论是正确的。我记错了堆栈自省的功能,或者在 JVMTI 中混淆了。

\n\n

因此,这是 B 计划。使用 JMX 连接到您自己。VM 摘要 MBean 具有参数。

\n\n
Connection name:\xc2\xa0\npid: 77090 com.basistech.jdd.JDDLauncher -config src/main/config/benson-laptop-config.xml\n
Run Code Online (Sandbox Code Playgroud)\n\n

话虽如此,您应该做的是调用System.getProperty并接受使用 -D 将参数从外部世界传递到您的洞穴的需要。

\n

  • 你会如何提出论点?它们不在“StackTraceElement”对象中。 (2认同)