通过System.getProperty配置JVM系统属性

网友投稿 317 2022-11-16


通过System.getProperty配置JVM系统属性

很多时候我们需要在项目中读取外部属性文件,用到了System.getProperty("")方法。这个方法需要配置JVM系统属性,那么如何配置呢?

那就是使用java -D 配置系统属性。

使用格式是:java -Dkey=value

比如新建一个测试类,如下:

public class Test {

public static void main(String[] args){

System.out.println(System.getProperty("configurePath"));

}

}

这段代码直接执行的话,会输出null

接下来需要配置configurePath属性了,有两种方法。

第一种方法是在启动tomcat的时候配置:

比如在myeclipse中,选中这个项目,然后在工具栏中选择"Run-->Run Confgurations“,然后在对话框的右边选择"Arguments,然后在VM arguments中输入-DconfigurePath=hello。如下图:

然后就会在控制台输出:hello

第二种方法是在执行java命令的时候配置:

将之前的测试类导出为一个jar包,再控制台使用命令执行:java -DconfigurePath=hello -jar Test.jar

也会得到hello

java -D 配置系统属性

使用案例

其实,在不知不觉中我们已经在使用-D的参数项,比如用下面参数来配置文件编码:

-Dfile.encoding=UTF-8

再比如,用以下参数来配置dubbo的选项:

java -Ddubbo.reference.com.foo.BarService.check=false

java -Ddubbo.reference.check=false

java -Ddubbo.consumer.check=false

java -DduCqTHhbbo.registry.check=false

功能解析

-D=value

官网解释:

Set a system property value. If value is

a string that contains spaces, you must enchttp://lose the strCqTHhing in double quotes:

在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机上的应用程序可用:

System.getProperty("属性名")得到value的值。

如果value中有空格,则需要用双引号将该值括起来,如:-Dname=”kazaf f”。

该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。

注意事项

(1)需要设置的是JVM参数而不是program参数;

(2)使用此参数的参数优先级最高,会覆盖项目中配置的此项;


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java中xml进行报文发送和解析操作
下一篇:JAVA数字千分位和小数点的现实代码(处理金额问题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~