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)使用此参数的参数优先级最高,会覆盖项目中配置的此项;
系统属性:
序号 | 属性 | 说明 |
1 | java.version | Java 运行时环境版本 |
2 | java.vendor | Java 运行时环境供应商 |
3 | java.vendor.url | Java 供应商的 URL |
4 | java.home | Java 安装目录 |
5 | java.vm.specification.version | Java 虚拟机规范版本 |
6 | java.vm.specification.vendor | Java 虚拟机规范供应商 |
7 | java.vm.specification.name | Java 虚拟机规范名称 |
8 | java.vm.version | Java 虚拟机实现版本 |
9 | java.vm.vendor | Java 虚拟机实现供应商 |
10 | java.vm.name | Java 虚拟机实现名称 |
11 | java.specification.version | Java 运行时环境规范版本 |
12 | java.specification.vendor | Java 运行时环境规范供应商 |
13 | java.specification.name | Java 运行时环境规范名称 |
14 | java.class.version | Java 类格式版本号 |
15 | java.class.path | Java 类路径 |
16 | java.library.path | 加载库时搜索的路径列表 |
17 | java.io.tmpdir | 默认的临时文件路径 |
18 | java.compiler | 要使用的 JIT 编译器的名称 |
19 | java.ext.dirs | 一个或多个扩展目录的路径 |
20 | os.name | 操作系统的名称 |
21 | os.arch | 操作系统的架构 |
22 | os.version | 操作系统的版本 |
23 | file.separator | 文件分隔符(在 UNIX 系统中是“/”) |
24 | path.separator | 路径分隔符(在 UNIX 系统中是“:”) |
25 | line.separator | 行分隔符(在 UNIX 系统中是“/n”) |
26 | user.name | 用户的账户名称 |
27 | user.home | 用户的主目录 |
28 | user.dir | 用户的当前工作目录 |
原文地址:
https://www.cnblogs.com/acm-bingzi/p/6673823.html
https://www.cnblogs.com/qypx520/p/5893087.html
侵删。
相关阅读
26-在保存hosts文件时,报错unable to save C:\windows
1.右键hosts文件,选择属性,如下图所示 2.点击【安全】 -【编辑】 3.选中当前用户,将允许位置全部勾上,【应用】-【是】-【确定
一例System.Data.SqlClient.SqlException: 对象名 'd
在Dbcontext的继承类中发现这个定义:public virtual DbSet<user> users { get; set; }这个说明了context的users,注意这里后缀有一
转自:http://blog.sina.com.cn/s/blog_6b8bd9d80101fe8t.html 在对新写的超快xml解析器和xpath引擎进行效率测试时,为获取执行时间
System.currentTimeMillis()计算方式与时间的单位转换 一、时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000
转自:http://www.cnblogs.com/chasewade/p/3387390.html Java中System.setProperty()用法 /** 设置指定键对值的系统属性* setPro