java - 正确使用 Java -D 命令行参数

标签 java command-line parameters

在 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/

相关文章:

java - 在 Javascript 中运行 Java 代码?

version-control - TFS 将FolderDiff 结果添加到变更集(或等效功能!)

php - 绑定(bind)后如何以字符串形式检索 MySql 语句?

parameters - 具有多个参数的 Spring 集成网关方法

c# - 在 C# 中仅将类型作为参数传递

java - 在 res/layout 中提取 Android .apk 并读取 XML 文件的内容

java - 使用“覆盖值”创建 FloatBuffer 数组?

c# - 实现命令行标志时,我应该使用正斜杠 (/) 还是连字符 (-) 作为前缀?

java - 将用空格分隔的整数读入 int[] 数组

c - 捕获浮点溢出异常