zoukankan      html  css  js  c++  java
  • 使用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)使用此参数的参数优先级最高,会覆盖项目中配置的此项;

  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/6673823.html
Copyright © 2011-2022 走看看