【问题标题】:Passing -D arguments to Java command line as file将 -D 参数作为文件传递给 Java 命令行
【发布时间】:2012-12-21 07:12:28
【问题描述】:

我想将 -D 参数传递给 Java 程序,该程序会将这些变量设置为系统属性。但是我有 3 到 4 个 -D 参数,并且列表可以动态增长,所以是否可以将所有这些参数添加到文件中并将其作为参数传递?

默认方法

-Dproperty=value
Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes:
            java -Dfoo="some string" SomeClass

我想这样做

variables.dat
-Dfoo="some String"
-Dbar="some string"
      ....
      ....

java -SOME_OPTION variables.dat SomeClass

有可能做到这一点吗?我从网上得到任何帮助的地方。请帮帮我。

【问题讨论】:

    标签: java command-line command-line-arguments


    【解决方案1】:

    不,java 可执行文件不会读取此文件来解析属性。您将不得不依靠您的 shell 来执行诸如将文件中的属性作为参数的一部分回显到 JVM 调用之类的事情。

    【讨论】:

      【解决方案2】:

      实现起来非常简单。假设文件是​​

      -Dkey1=value1
      -Dkey2=value2
      

      你只需要阅读这个文件;并在循环中做 System.setProperty(key1.substring(2), value1) ;因为这最终是 -D 选项的作用。

      【讨论】:

      • 是的,我想过。但是文件中的变量将带有 -D 前缀,因为这将是我们的 Windows 安装程序的方式,除非 Linux 会像我指定的那样通过命令行调用,因此在 Linux 的情况下找到一种传递这些值的方法。
      猜你喜欢
      • 2015-04-14
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2012-09-24
      • 2010-12-11
      • 1970-01-01
      相关资源
      最近更新 更多