`java` 命令啟動 JVM 執行主類別。參數分為標準(穩定)、非標準(`-X`)、開發/診斷(`-XX`)三類。
記憶體與 GC 核心參數
| 參數 | 說明 | 範例 |
|---|
| -Xms / -XX:InitialHeapSize | 初始堆大小 | -Xms2g |
| -Xmx / -XX:MaxHeapSize | 最大堆大小 | -Xmx4g |
| -Xmn / -XX:NewSize | 新生代大小 | -Xmn1g |
| -XX:MetaspaceSize / MaxMetaspaceSize | 元空間大小 (JDK 8+) | -XX:MaxMetaspaceSize=512m |
| -XX:+UseG1GC / ZGC / Shenandoah | 選擇 GC 演算法 | -XX:+UseZGC |
| -XX:MaxGCPauseMillis | 目標最大停頓 (G1/ZGC) | -XX:MaxGCPauseMillis=100 |
除錯與診斷參數
| 參數 | 用途 |
|---|
| -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 | 啟用遠端除錯埠 5005 |
| -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ | OOM 時自動導出堆轉儲 |
| -XX:+PrintGCDetails -Xlog:gc*:file=gc.log:time,uptime,level,tags | GC 日誌 (JDK 9+ 統一日誌) |
| -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=record.jfr | 啟動 JFR 記錄 60 秒 |
| -D<名稱>=<值> | 設定系統屬性 |
類載入與驗證
- -Xverify:none / remote / all:位元碼驗證模式
- -verbose:class / -Xlog:class+load:追蹤類載入
- -javaagent:/path/agent.jar:掛載 Java Agent
生產環境建議模板
java -Xms4g -Xmx4g -XX:+UseZGC \
-XX:+HeapDumpOnOutOfMemoryError \
-Xlog:gc*:file=logs/gc.log:time,uptime,level,tags:filecount=10,filesize=100m \
-Dapp.env=prod -Djava.security.egd=file:/dev/./urandom \
-jar app.jar