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属性了,有两种方法:
    第一种方法在启动应用程序的时候配置
      比如在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

  • 相关阅读:
    Cornerstone-忽略(隐藏)文件
    ios开发xcode8+ 无需开发者账号,app打包ipa
    ssh-ajax登陆action返回字符串
    手动编译包含两个import自写类的java类。
    关闭IO资源
    java聊天室二(客户端)
    java聊天室一(服务器)
    文件IO常用操作
    Hive启动时的棘手问题的处理
    对于java反射的理解
  • 原文地址:https://www.cnblogs.com/lojun/p/9398515.html
Copyright © 2011-2022 走看看