在 Java 中传递 -D 参数时,编写命令行然后从代码中访问它的正确方法是什么?
例如,我试过写这样的东西......
if (System.getProperty("test").equalsIgnoreCase("true"))
{
//Do something
}
然后这样调用它......
java -jar myApplication.jar -Dtest="true"
但我收到 NullPointerException。我做错了什么?
最佳答案
我怀疑问题在于您将“-D” 放在 -jar
之后。试试这个:
java -Dtest="true" -jar myApplication.jar
从命令行帮助:
java [-options] -jar jarfile [args...]
换句话说,您现在的方式将把 -Dtest="true"
作为参数之一传递给 main
而不是作为 JVM 参数。
(您可能也应该去掉引号,但无论如何它都可以正常工作 - 这可能取决于您的外壳。)
关于java - 正确使用 Java -D 命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045608/