当前位置: 首页 > 面试题库 >

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

阎昌勋
2023-03-14
问题内容

在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参数。

(您可能 应该删除引号,但是无论如何它都可以正常工作-它可能取决于您的shell。)



 类似资料:
  • 例如,如果我的程序是这样正确启动的: 但是,我想阻止用户输入此表单以外的内容。 因此,只要命令行参数的格式不是我希望我的程序退出并打印错误代码。 我不知道怎么做。对于这种情况,如果有人输入什么,我只是用ArrayIndexOutofBound尝试捕捉,但我不知道如何特别捕捉每一个可能的命令行参数,这是不正确的形式。

  • 问题内容: 我正在尝试从命令行运行Java计算器应用程序。参数如下:运算符operon1操作数2。我可以为+和-成功运行Java程序。 例如 Java Calc + 2 4 Java Calc-10 4 但是当我尝试运行 java * 2 5时 给出输出: .classpath .project .settings 我通过反复试验发现使用单引号(’‘)解决了我的问题。所以我现在有两个问题。 1.使

  • 本文向大家介绍如何正确使用Linux命令–du,包括了如何正确使用Linux命令–du的使用技巧和注意事项,需要的朋友参考一下 本文简单介绍了如何使用如何使用Linux命令–du,需要的朋友可以参考一下。 du(disk usage) 功能说明:显示目录或文件的大小。 语  法:du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][–block-size][–exclude

  • 问题内容: 这段代码: 产生此错误: OPTable是一个字母数字字符串,它是从另一个数据库查询中构建的,该数据库查询包含我要从中选择的表名。 以下代码在同一脚本中也可以正常工作。 我猜想以这种方式构建sql语句并没有什么大不了的,但是我只是不明白为什么它不接受??参数。我什至在使用?的同一脚本中还有另一个查询。参数化并可以正常工作。但是,使用raw_input函数生成用于工作查询的参数。这两个字

  • 为了方便起见,我们支持在运行 Blade 应用的时候修改一些配置,比如我在运行时指定端口: java -jar blade-app.jar --server.port=9088 当然还支持一些其他的命令行参数,看看下面的表格: 命令行参数 描述 示例 server.address 服务地址,默认是本机 0.0.0.0 回环地址 --server.address=192.168.1.100 serv

  • 1.2. 命令行参数 大多数的程序都是处理输入,产生输出;这也正是“计算”的定义。但是, 程序如何获取要处理的输入数据呢?一些程序生成自己的数据,但通常情况下,输入来自于程序外部:文件、网络连接、其它程序的输出、敲键盘的用户、命令行参数或其它类似输入源。下面几个例子会讨论其中几个输入源,首先是命令行参数。 os包以跨平台的方式,提供了一些与操作系统交互的函数和变量。程序的命令行参数可从os包的Ar