通过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 -ddubbo.registry.check=false
功能解析
-d=value
官网解释:
set a system property value. if value is
a string that contains spaces, you must enclose the string in double quotes:
在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机上的应用程序可用:
system.getproperty("属性名")得到value的值。
如果value中有空格,则需要用双引号将该值括起来,如:-dname=”kazaf f”。
该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。
注意事项
(1)需要设置的是jvm参数而不是program参数;
(2)使用此参数的参数优先级最高,会覆盖项目中配置的此项;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
-
linux shell之通过标识测试文件系统属性的方法示例
-
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
-
Spring读取系统属性的方法就是先读system.getProperty() 然后再读 System.getenv()
-
Spring读取系统属性的方法就是先读system.getProperty() 然后再读 System.getenv()
-
电脑配置怎么查看?电脑系统属性查看方法
-
通过System.getProperty配置JVM系统属性
-
linux shell之通过标识测试文件系统属性的方法示例
-
QBC 通过Heibernate查询 discriminator 配置的属性问题 qbchibernateotypemappingdiscriminator
-
在Linux系统上通过uWSGI配置Nginx+Python环境的教程