在Java中传递a-D参数时,编写命令行然后从代码中访问它的正确方法是什么?

例如,我试过写这样的东西...

if (System.getProperty("test").equalsIgnoreCase("true"))
{
   //Do something
}

然后这样称呼它...

java -jar myApplication.jar -Dtest="true"

但我收到一个空点异常.我做错了什么?

推荐答案

我怀疑问题是你把"-D"after改成了-jar.试试这个:

java -Dtest="true" -jar myApplication.jar

在命令行帮助中:

java [-options] -jar jarfile [args...]

换言之,目前的处理方式是将-Dtest="true"视为要传递给main的参数之一,而不是JVM参数.

(你可能应该删除also个引号,但无论如何它都可能有效——这可能取决于你的shell.)

Java相关问答推荐

我正在try 对用户输入的整元进行气泡排序(Java)

收听RDX中用户数据的变化

是否可以从@ TrustMapping中删除特定方法的基路径?

使用log 4j2格式的Hibernate 显示SQL日志(log)

Maven Google Sheets版本问题

使用Apache Poi MQLSlideShow,在XSLFTable表中,我们可以在文本段落后面的每个单元格中包含圆角矩形吗?

更新我们的一个文物后出现了严重的符号引用错误

参数值[...]与预期类型java.util.Date不匹配

如何以干净的方式访问深度嵌套的对象S属性?

为什么JAVA&S清洁器使用链表而不是并发HashSet?

Java编译器抛出可能未正确初始化的错误?

如何修复PDF重建过程中的文本定位

解释左移在Java中的工作原理

如何获取Instant#of EpochSecond(?)的最大值

当b是一个字节并且在Java中值为-1时,为什么b>;>;>;1总是等于-1?

如何使用Criteria Builder处理一对多关系中的空值?

如何在EL处理器中定义带有命名空间的变量?

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

如何从命令行编译包中的所有类?

按长度排序字符串数组