• java:jvm参数设置


    java:jvm参数设置

    1 前言

    jvm参数设置后,可通过System.getProperties()或者System.getProperty(“jdbc.drivers”)来获取特定的jvm参数。

    2 使用

    输入java命令,查看jvm参数的格式:

    在这里插入图片描述

    系统属性即可通过System获取,命令格式如下:

    -D<名称>=<>
    
    • 1

    2.1 javac命令执行时,添加-D<名称>=<值>参数,添加系统属性

    于项目的src/main/java路径下新建Ha.java文件:

    在这里插入图片描述

    Ha.java:

    import java.util.Arrays;
    import java.util.Map;
    import java.util.Properties;
    
    /**
     * @author xiaoxu
     * @date 2022-09-03 18:15
     * FruitMall:PACKAGE_NAME.Ha
     */
    public class Ha {
        public static void main(String[] args) {
            System.out.println("参数来了哈哈哈"+Arrays.toString(args));
            Properties properties = System.getProperties();
            System.out.println("jvm参数:"+System.getProperty("jdbc.drivers"));
            for(Map.Entry<Object, Object> entry:properties.entrySet()){
                if(entry.getKey().toString().startsWith("jdbc.drivers")){
                    System.out.println("*********");
                    System.out.println(entry.getKey());
                    System.out.println(entry.getValue());
                }
            }
            System.out.println("你好吗");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    使用javac命令编译java源文件为.class文件(idea的terminal终端下进行):

    路径需为Ha.java所处目录下:

    在这里插入图片描述

    javac -encoding UTF-8 Ha.java
    
    • 1

    编译完成后:
    在这里插入图片描述

    然后执行java命令时,添加jvm参数:

    在这里插入图片描述

    注意:java命令执行时,Ha后缀不要加上.java

    java -Djdbc.drivers=nihao Ha
    
    • 1

    若执行java命令时,没有添加系统属性,则如下:

    java Ha
    
    • 1
    参数来了哈哈哈[]
    jvm参数:null
    你好吗
    
    • 1
    • 2
    • 3

    每次修改了java源文件,都需要使用javac重新进行编译

    2.2 idea配置执行时的jvm参数

    在这里插入图片描述
    在Vm options里添加:

    -Djdbc.drivers=xiaoxuDriver
    
    • 1

    在这里插入图片描述

    直接执行Ha的main方法,结果如下:

    参数来了哈哈哈[]
    jvm参数:xiaoxuDriver
    *********
    jdbc.drivers
    xiaoxuDriver
    你好吗
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.3 使用System为系统属性赋值

    Properties prop = System.getProperties();
    prop.put("jdbc.drivers","xiaoxuCodeSet");
    
    • 1
    • 2
    import java.util.Arrays;
    import java.util.Map;
    import java.util.Properties;
    
    /**
     * @author xiaoxu
     * @date 2022-09-03 18:15
     * FruitMall:PACKAGE_NAME.Ha
     */
    public class Ha {
        public static void main(String[] args) {
            System.out.println("参数来了哈哈哈"+Arrays.toString(args));
            Properties prop = System.getProperties();
            prop.put("jdbc.drivers","xiaoxuCodeSet");
    //        System.setProperties(prop);
            System.out.println("jvm参数:"+System.getProperty("jdbc.drivers"));
            for(Map.Entry<Object, Object> entry:prop.entrySet()){
                if(entry.getKey().toString().startsWith("jdbc.drivers")){
                    System.out.println("*********");
                    System.out.println(entry.getKey());
                    System.out.println(entry.getValue());
                }
            }
            System.out.println("你好吗");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    执行结果如下:

    参数来了哈哈哈[]
    jvm参数:xiaoxuCodeSet
    *********
    jdbc.drivers
    xiaoxuCodeSet
    你好吗
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    下载、安装并配置 Node.js
    ​电脑上的回收站怎么隐藏 ,怎么隐藏桌面回收站图标
    编程内功心法「公钥密码学系列」基础介绍公钥证书与私钥标准(1)
    DataStream API(三)
    添加阈值滞后以实现平滑的欠压/过压锁定
    共享充电语音提醒功能如何实现?
    拿到已开发好的Vue前端代码如何在本地运行?
    一文搞懂浅拷贝与深拷贝到底有什么区别
    pull会使用git merge导致冲突
    【Linux】---环境变量
  • 原文地址:https://blog.csdn.net/a232884c/article/details/126682539