System.getProperty()


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

那就是使用java -D 配置系统属性。
使用格式是:java -Dkey=value

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

public class MyTest {

    @Test
    public void test(){
        System.out.println(System.getProperty("TestTest"));
    }
}

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

接下来需要配置configurePath属性了,有两种方法。
第一种方法是在启动tomcat的时候配置:
比如在myeclipse中,选中这个项目,然后在工具栏中选择"Run-->Run Confgurations“,然后在对话框的右边选择"Arguments,然后在VM arguments中输入-DconfigurePath=hello。如下图:

 

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

第二种方法是在执行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)使用此参数的参数优先级最高,会覆盖项目中配置的此项;

 

系统属性:

序号属性说明
1java.versionJava 运行时环境版本
2java.vendorJava 运行时环境供应商
3java.vendor.urlJava 供应商的 URL
4java.homeJava 安装目录
5java.vm.specification.versionJava 虚拟机规范版本
6java.vm.specification.vendorJava 虚拟机规范供应商
7java.vm.specification.nameJava 虚拟机规范名称
8java.vm.versionJava 虚拟机实现版本
9java.vm.vendorJava 虚拟机实现供应商
10java.vm.nameJava 虚拟机实现名称
11java.specification.versionJava 运行时环境规范版本
12java.specification.vendorJava 运行时环境规范供应商
13java.specification.nameJava 运行时环境规范名称
14java.class.versionJava 类格式版本号
15java.class.pathJava 类路径
16java.library.path加载库时搜索的路径列表
17java.io.tmpdir默认的临时文件路径
18java.compiler要使用的 JIT 编译器的名称
19java.ext.dirs一个或多个扩展目录的路径
20os.name操作系统的名称
21os.arch操作系统的架构
22os.version操作系统的版本
23file.separator文件分隔符(在 UNIX 系统中是“/”)
24path.separator路径分隔符(在 UNIX 系统中是“:”)
25line.separator行分隔符(在 UNIX 系统中是“/n”)
26user.name用户的账户名称
27user.home用户的主目录
28user.dir用户的当前工作目录

 

原文地址:

https://www.cnblogs.com/acm-bingzi/p/6673823.html

https://www.cnblogs.com/qypx520/p/5893087.html

侵删。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值