-D标识用于JAVA命令,表示系统属性值对,值对是什么东西? 如题,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是键值对。由于有些参数需要变化的,不能写死在程序中,我们就可以采用这种方式在执行命令时设置一些参数。这样的话,我们就不用在程序代码中把具体的值给写死。举个例子:public class Test { public static void main(String[] args) { String path = System.getProperty("my.property.path"); String file = System.getProperty("my.property.file"); System.out.println("path = " + path); System.out.println("file = " + file); }}编译上面的代码之后,使用命令:[code=BatchFile]F:\>java -Dmy.property.path=abc -Dmy.property.file=123 Test[/code]程序执行后的结果就是:path = abcfile = 123如果想动态地配置一下,可以把下面这个文件存为一个 .bat 文件:[code=BatchFile]@echo offif "%OS%" == "Windows_NT" setlocalif "%1" == "" ( set MY_PROPERTY_PATH=default_value) else ( set MY_PROPERTY_PATH=%1)if "%2" == "" ( set MY_PROPERTY_FILE=default_value) else ( set MY_PROPERTY_FILE=%2)java -Dmy.property.path=%MY_PROPERTY_PATH% -Dmy.property.file=%MY_PROPERTY_FILE% Testecho on[/code]假设存为 test.bat,如果执行:test 时输出: path = default_value file = default_valuetest abc 时输出: path = abc file = default_valuetest abc 123 时输出: path = abc file = 123如果善于利用这个参数的话,可以很方便地把一些诸如应用程序主要参数采取这种方式进行配置。 再举个 Java 系统参数的例子,下面这段代码可以输出本地机器所处时间的当前时间:public class Test { public static void main(String[] args) { System.out.printf("%tF %<tT", System.currentTimeMillis()); }}如果我们不想改动源代码,想把程序中所有的时间都更改为 GMT 标准时间的话,我们也可以利用 -D 这个参数:[code=BatchFile]F:\>java -Duser.timezone=GMT Test[/code]这样的话,就可以获得格林尼治标准时间了,而不是处于操作系统默认的 GMT+8 时区的时间了。如果再执行 java Test 这时还是会输出本地时间的。像 user.timezone 这种是 Java 的系统参数,是由 JVM 启动时设定的,同时可以采用 -D 参数人为地修改他们的值。可以使用 System.getProperties() 方法获得所有的 Java 系统参数。Java 系统参数中主要含有一些 Java 运行时所必需的基本参数,比如:Java 版本、引导路径、操作系统版本、路径分隔符、系统默认编码、时区、国家、换行符、用户信息、临时文件目录等等参数。像在 1 楼中的那些参数是自定义的,由用户任意设定的。 DAO模式的优势在哪? JAVA写的这个图形为什么不能显示 String 中 == 的判断问题 新手安装问题。 就是我想点“下”,光标就跑到con里面,点“上”就跑到pro中 如果注册NT服务 构造函数有什么要求吗? 怎样取得JInternalFrame的父窗口 又被3721王八病毒程序骚扰!郁闷!撒分! 怎么学好JAVA? java版的QQ现在还有能的么? 被APPLET路径问题搞晕了~希望大家帮帮忙
这样的话,我们就不用在程序代码中把具体的值给写死。举个例子:
public class Test {
public static void main(String[] args) {
String path = System.getProperty("my.property.path");
String file = System.getProperty("my.property.file");
System.out.println("path = " + path);
System.out.println("file = " + file);
}
}编译上面的代码之后,使用命令:
[code=BatchFile]F:\>java -Dmy.property.path=abc -Dmy.property.file=123 Test[/code]程序执行后的结果就是:
path = abc
file = 123如果想动态地配置一下,可以把下面这个文件存为一个 .bat 文件:[code=BatchFile]@echo off
if "%OS%" == "Windows_NT" setlocal
if "%1" == "" (
set MY_PROPERTY_PATH=default_value
) else (
set MY_PROPERTY_PATH=%1
)
if "%2" == "" (
set MY_PROPERTY_FILE=default_value
) else (
set MY_PROPERTY_FILE=%2
)
java -Dmy.property.path=%MY_PROPERTY_PATH% -Dmy.property.file=%MY_PROPERTY_FILE% Test
echo on[/code]假设存为 test.bat,如果执行:test 时输出:
path = default_value
file = default_valuetest abc 时输出:
path = abc
file = default_valuetest abc 123 时输出:
path = abc
file = 123如果善于利用这个参数的话,可以很方便地把一些诸如应用程序主要参数采取这种方式进行配置。
public static void main(String[] args) {
System.out.printf("%tF %<tT", System.currentTimeMillis());
}
}如果我们不想改动源代码,想把程序中所有的时间都更改为 GMT 标准时间的话,我们也可以利用 -D 这个参数:[code=BatchFile]F:\>java -Duser.timezone=GMT Test[/code]这样的话,就可以获得格林尼治标准时间了,而不是处于操作系统默认的 GMT+8 时区的时间了。如果再执行 java Test 这时还是会输出本地时间的。像 user.timezone 这种是 Java 的系统参数,是由 JVM 启动时设定的,同时可以采用 -D 参数人为地修改他们的值。
可以使用 System.getProperties() 方法获得所有的 Java 系统参数。Java 系统参数中主要含有一些 Java 运行时所必需的基本参数,比如:Java 版本、引导路径、操作系统版本、
路径分隔符、系统默认编码、时区、国家、换行符、用户信息、临时文件目录等等参数。像在 1 楼中的那些参数是自定义的,由用户任意设定的。