通过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)使用此参数的参数优先级最高,会覆盖项目中配置的此项;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java的System.getProperty()方法获取大全
本文实例汇总了Java的System.getProperty()方法获取信息的用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.println("Java提供商名称:" + System.getProperty("java.vendor"
-
Android getSystemService用法实例总结
本文实例分析了Android getSystemService用法.分享给大家供大家参考,具体如下: 1. 说明 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据,以下将说明他们
-
Python @property原理解析和用法实例
这篇文章主要介绍了Python @property原理解析和用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在我们定义数据库字段类的时候,往往需要对其中的类属性做一些限制,一般用get和set方法来写,那在python中,我们该怎么做能够少写代码,又能优雅的实现想要的限制,减少错误的发生呢,这时候就需要我们的@property闪亮登场啦,巴拉巴拉能量--.. 用代码来举例子更容易理解,比如一个学生成绩表定义成这样 class Stude
-
Python 从attribute到property详解
字面意思上的区别 Attribute与property, 都可翻译成属性. 虽然无论是在中文中还是英文中 它们的意思都几乎一样, 但仍有些许差别. Google了好几下, 找到了一个看起来比较靠谱的解释: According to Webster, a property is a characteristic that belongs to a thing's essential nature and may be used to describe a type or species. An a
-
JVM 参数配置详细介绍
JVM参数配置 设置堆大小 -Xms 初始堆大小 -Xmx 最大堆大小 -Xmn 设置年轻代大小 设置每个线程堆栈大小 -Xss 设置每个线程的堆栈大小 设置年轻代大小 -XX:NewSize= -XX:MaxNewSize=设置年轻代大小 -XX:NewRatio=设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代) -XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值 设置持久代大小 -XX:MaxPermSize=设置持久代大
-
Python @property及getter setter原理详解
@property作用: python的@property是python的一种装饰器,是用来修饰方法的. 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改. 1.修饰方法,让方法可以像属性一样访问. class DataSet(object): @property def method_with_property(self): ##含有@property return 15 def m
-
通过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("configure
-
详解Java获取环境变量及系统属性的方法
环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会有一些不统一的地方, 比如说: 不区分大小写 等等. Java 获取环境变量 Java 获取环境变量的方式很简单: System.getEnv() 得到所有的环境变量 System.getEnv(key) 得到某个环境变量的值 Map map = System.getenv(); Iterator it
-
浅谈System.getenv()和System.getProperty()的区别
最近遇到一个需求,服务器实例需要获取当前的环境变量.经过查资料,发现环境变量可以在两个地方设置. 一.在系统层面设置环境变量 在系统层面设置环境变量,之前我们应该都操作过,以windows系统为例 System.getenv()可以获取的在这里设置的变量. 二.在java虚拟机层面设置环境变量 个人理解,System.getProperty()可以获取在JVM 层面的变量,有些变量在JVM启动后,就内置了,如: 参数值 参数含义 java.version Java 运行时环境版本 java.ve
-
java序列化对象根据不同配置动态改变属性名的方法
目录 实现方式 实现过程 自定义注解一:MyParamName 自定义注解二:NameEle 手写MyNameFilter,实现fastjson的NameFilter 实体类,属性上添加自定义注解 运行主方法测试 参考 使用场景:自己项目对接多个外部系统,各个外部系统使用的字段并没有统一,所以要根据不同系统动态的输出序列化数据,使适应各个系统的要求 实现方式 使用自定义注解和fastjson实现需求 fastjson的NameFilter的作用:序列化时,属性名变成自己指定的名称 实现过程 自定
-
Java System.getProperty()-获取系统参数案例详解
因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,所以应该清楚当前的目录. 可以通过调用System.getProperty("user.dir"); 来获得. /** * java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.vm.specification.version Java 虚拟机规范版本 java.vm.specificati
-
VMware下配置Linux系统局域网和外网访问图文教程
要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设你装的是一个minimal版本的CentOS,那么很多Linux系统下面的工具都是没有被安装的,这个时候如果不能访问互联网,你会感觉特别的蛋疼,因为很多工具都没法下载以及安装,那么,今天小编就给大家分享一下如何在VMware下配置Linux系统成功访问局域网和外网. 第一步:打开VMware虚拟机,
-
Spring基于注解配置事务的属性
本文实例为大家分享了Spring基于注解配置事务的属性,供大家参考,具体内容如下 一.事务属性概述 在Spring中,事务属性描述了事务策略如何应用到方法上,事务属性包含5个方面: ① 传播行为② 隔离级别③ 回滚策略④ 超时时间⑤ 是否只读 二.事务的传播行为属性## 1.当事务方法被另一个事务方法调用时,必须指定事务应该如何传播.例如,方法可能继续在现有的事务中允许,也可能开启一个新事务,并在自己的事务中运行.2.事务的传播行为可以由传播属性指定,Spring定义了7种类型的传播行为.其中最
-
VS Code+msys2配置Windows系统下C/C++开发环境
目录 一.Msys2配置 二.下载安装VSCode 三.配置开发环境 总结 一.Msys2配置 1. 下载msys2, 网址:https://www.msys2.org/ 2. 安装msys2-x86_64-xxxx.exe 这里没什难度,记住安装路径就好,一路next就装好了. 3. 安装gcc 3.1. 更新msys2 > pacman -Sy 3.2. 安装gcc > pacman -Su gcc 出现"Proceed with installation? [Y/n]"
-
配置Win2000系统中的磁盘配额
在Windows 2000 Server为服务器操作系统的计算机网络中,系统管理员有一项很重要的任务,即为访问服务器资源的客户机设置磁盘配额,也就是限制他们一次性访问服务器资源的卷空间数量.这样做的目的在于防止某个客户机过量地占用服务器和网络资源,导致其他客户机无法访问服务器和使用网络.本文将就配置服务器磁盘配额方面的相关内容进行介绍. 系统管理员如何对磁盘配额进行配置 磁盘配额对于普通的Windows 2000用户不太重要,不过对于整个网络的系统管理员来说,此项操作却是至为重要的.因为一旦网络
随机推荐
- c#实现16进制和字符串之间转换的代码
- JavaScript this调用规则说明
- JMS 之 Active MQ 的消息传输(详解)
- Python新手实现2048小游戏
- 浅谈类型转换操作符is/as
- DEFER怎么用?
- 在React中如何优雅的处理事件响应详解
- Android中微信抢红包插件原理解析及开发思路
- Android View移动的3种方式总结
- JavaScript中的console.log()函数详细介绍
- 分享Ajax创建简单实例代码
- jQuery拖动布局其结果保存到数据库
- SQL Server 2008 R2登录失败的解决方法
- SQL CONVERT转化函数使用方法小结
- jQuery 版元素拖拽原型代码
- jQuery基于ajax操作json数据简单示例
- 打印菱形以及斐波纳契数列的几种解法介绍
- C++实现读入二进制数并转换为十进制输出
- java计算自幂数和水仙花数
- java 从int数组中获取最大数的方法