這是我參與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啓動各類配置項保證了咱們同一套代碼可經過不一樣的配置運行在不一樣的環境上。開發環境使用開發配置,測試環境使用測試配置,生產環境使用生產配置。