• 使用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占用CPU高的线程日志
    行为面试法(STAR)
    下载mysql document
    win10 子系统ubuntu中文乱码
    java 排序
    进制
    开始转型学习java
    java Collections工具类
    java Map实例
    java Map
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/6673823.html
Copyright © 2020-2023  润新知