这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战java
对于这个面板,你们都很是熟悉了吧。这是Java程序启动时配置相关参数的面板。今天咱们聊聊启动时主要配置的三个参数:VM options、Program arguments、Environment variables。spring
VM options,为虚拟机选项。markdown
其大体可分为三种:jvm
咱们能够在控制台直接输入:java
命令查看全部的标准参数post
最经常使用的 -D<名称>=<值>
这个选项,这个选项是设置系统属性。如测试
-Dspring.profiles.active=dev
复制代码
设置的系统属性,咱们能够经过System.getProperty()
得到spa
在控制台输入java -X
可查看全部非标准参数线程
常常使用的jvm堆大小就是经过非标准参数设置3d
-Xms<size> 设置初始 Java 堆大小
-Xmx<size> 设置最大 Java 堆大小
-Xss<size> 设置 Java 线程堆栈大小
复制代码
如:code
-XX:NewSize=341m,设置年轻代初始值为341M。 -XX:MaxNewSize=341m,设置年轻代最大值为341M。
-XX:PermSize=512m,设置持久代初始值为512M,但在java8及以后就不支持了,改用XX:MetaspaceSize=512m。
-XX:MaxPermSize=512m,设置持久代最大值为512M,一样在java8及以后就不支持了,改用-XX:MaxMetaspaceSize=512m。
复制代码
这里的配置参数为主类的main方法的参数
public static void main(String[] args)
复制代码
Environment variables 为环境变量,可经过System.getenv()
方法得到。
VM options、Program arguments 参数设置很简单(在控制台输入java以后,第一行就告诉咱们用法了)
示例:
java -Dphone=xiaomi -classpath "D:\code\my\bread\out\production\bread;" com.carrywei.bread.basic.Environment a b c
复制代码
说明:
「-Dphone=xiaomi -classpath "D:\code\my\bread\out\production\bread;"」为Vm option
「com.carrywei.bread.basic.Environment」为运行的类
「a b c」为 Program arguments
Environment variables参数的设置,并非在程序启动时设置的。它能够配置在系统的环境变量里,也能够在运行的终端设置临时的环境变量(只在此终端生效)
Windows系统设置使用SET
命令,Linux使用export
命令
Windows 演示效果
Java启动各类配置项保证了咱们同一套代码可经过不一样的配置运行在不一样的环境上。开发环境使用开发配置,测试环境使用测试配置,生产环境使用生产配置。