我在Eclipse Mars中有Wildfly服务器。在 Open launch configuration 中,在 Program argumenst 部分,我添加了Dmyarg.dir="Value"
。
然后,在应用程序中,我有代码:
RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean();
for(String arg : mxBean.getInputArguments()){
if(arg.startsWith("Dmyarg.dir")){
String [] filePath = arg.split("=");
break;
}
}
从Eclipse运行我的服务器后,没有传递参数。 我自己运行我的服务器,我的应用程序可以找到这个论点。
如何在Eclipse中添加将在那里显示的参数?
答案 0 :(得分:0)
根据RuntimeMXBean#getInputArguments文档
返回传递给Java虚拟机的输入参数 不包括main方法的参数。
因此,如果您希望在getInputArguments
调用的结果中看到您的参数,则需要将其传递给JVM。即在Eclipse IDE中,您应该在" VM参数"中键入-Dmyarg.dir="Value"
。提交启动配置。并将其处理为
RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean();
for(String arg : mxBean.getInputArguments()){
if(arg.startsWith("-Dmyarg.dir")){
String [] filePath = arg.split("=");
break;
}
}
另请注意,您可以使用下一个代码来获取传递为-Dmyarg.dir="Value"
System.getProperty("myarg.dir")
请参阅documentation for java命令:
<强> -Dproperty =值强>
设置系统属性值。如果value是包含空格的字符串,则必须将其括起来 双引号中的字符串:
java -Dmydir =&#34; some string&#34; SomeClass的