java:jvm参数设置
1 前言
jvm参数设置后,可通过System.getProperties()或者System.getProperty(“jdbc.drivers”)来获取特定的jvm参数。
2 使用
输入java命令,查看jvm参数的格式:
系统属性即可通过System获取,命令格式如下:
-D<名称>=<值>
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("你好吗");
}
}
使用javac命令编译java源文件为.class文件(idea的terminal终端下进行):
路径需为Ha.java所处目录下:
javac -encoding UTF-8 Ha.java
编译完成后:
然后执行java命令时,添加jvm参数:
注意:java命令执行时,Ha后缀不要加上.java
java -Djdbc.drivers=nihao Ha
若执行java命令时,没有添加系统属性,则如下:
java Ha
参数来了哈哈哈[]
jvm参数:null
你好吗
每次修改了java源文件,都需要使用javac重新进行编译
2.2 idea配置执行时的jvm参数
在Vm options里添加:
-Djdbc.drivers=xiaoxuDriver
直接执行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
你好吗