在Eclipse中传递服务器参数,然后在应用程序中读取它

时间:2016-05-20 09:47:21

标签: java eclipse wildfly

我在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中添加将在那里显示的参数?

1 个答案:

答案 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"

的VM参数的值
System.getProperty("myarg.dir")

请参阅documentation for java命令:

  

<强> -Dproperty =值
  设置系统属性值。

     

如果value是包含空格的字符串,则必须将其括起来   双引号中的字符串:

     

java -Dmydir =&#34; some string&#34; SomeClass的