• 使用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属性了,有两种方法:
    第一种方法在启动应用程序的时候配置
      比如在eclipse中,选中这个项目,然后在工具栏中选择"Run-->Run Confgurations“,然后在对话框的右边选择"Arguments“,然后在VM arguments中输入-DconfigurePath=hello。如下图:

     

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

    补充说明:

      上图中program arguments中输入的参数是应用程序String[] args数组值。

    第二种方法在执行java命令的时候配置
       将之前的测试类导出为一个jar包,再控制台使用命令执行:java -DconfigurePath=hello -jar Test.jar,也会得到hello。

     

    其他java -D 配置系统属性说明
    (1)使用案例
     在使用-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
    (2)功能解析
     -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)使用此参数的参数优先级最高,会覆盖项目中配置的此项;

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

  • 相关阅读:
    SSH
    List Map Set
    oracle中的in和exsit比较
    Hibernate n+1问题
    单例模式。
    把一段逗号分割的字符串转换成一个数组
    Hibernate总结
    myeclipse安装svn插件的多种方式
    LeetCode 14 Longest Common Prefix
    LeetCode 13 Roman to Integer
  • 原文地址:https://www.cnblogs.com/lojun/p/9398515.html
Copyright © 2020-2023  润新知