java:jvm参数设置

java:jvm参数设置

1 前言

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

2 使用

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

java:jvm参数设置_第1张图片

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

-D<名称>=<>

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

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

java:jvm参数设置_第2张图片

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("你好吗");
    }
}

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

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

java:jvm参数设置_第3张图片

javac -encoding UTF-8 Ha.java

编译完成后:
java:jvm参数设置_第4张图片

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

java:jvm参数设置_第5张图片

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

java -Djdbc.drivers=nihao Ha

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

java Ha
参数来了哈哈哈[]
jvm参数:null
你好吗

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

2.2 idea配置执行时的jvm参数

java:jvm参数设置_第6张图片
在Vm options里添加:

-Djdbc.drivers=xiaoxuDriver

java:jvm参数设置_第7张图片

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

参数来了哈哈哈[]
jvm参数:xiaoxuDriver
*********
jdbc.drivers
xiaoxuDriver
你好吗

2.3 使用System为系统属性赋值

Properties prop = System.getProperties();
prop.put("jdbc.drivers","xiaoxuCodeSet");
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("你好吗");
    }
}

执行结果如下:

参数来了哈哈哈[]
jvm参数:xiaoxuCodeSet
*********
jdbc.drivers
xiaoxuCodeSet
你好吗

你可能感兴趣的:(Java,jvm,java,开发语言)