- 概述
- 簡單介紹一下 java 命令行相關的參數及屬性
1. java 命令行
-
基本
-
命令
> java <mainClass>
-
描述
- 執行 Java 類
- 需要准備好編譯完成的 mainClass
-
-
然后
-
命令
> java -X<options> -XX<options> -D<properties> <mainClass> [arg0] [arg1]...
- 怎么感覺, 東西一下多了好多, 有點懵逼了
- 沒事, 慢慢來
- 這些東西, 大概分這么幾塊
- 選項
- 屬性
- 參數
- 這些東西, 大概分這么幾塊
- 沒事, 慢慢來
- 怎么感覺, 東西一下多了好多, 有點懵逼了
-
2. 選項
-
概述
- 選項主要的目的, 是對 JVM 做一些調整
-
分類
-
標注選項
-
通用
- 所有版本的 JVM 都要實現的選項
-
例如
-version -server -client
-
其他
- 我們后面說的 -D, 其實也包含在其中
- 這個我想單獨說
- 具體的例子, 就不一一例舉了
- 我們后面說的 -D, 其實也包含在其中
-
-
拓展選項
-
拓展
- hotspot 會實現
- 其他 JVM 未必實現
-
例如
# 最大堆內存 -Xmx3800m # 初始堆內存 -Xms3800m # 新生代內存 -Xmn2g # (每個線程)棧內存大小 -Xss128k
-
其他
- 常見參數就是這些
- 不細講了
- 數值單位
- 可以自己定, 比較靈活
- 重合
- 拓展選項和高級選型, 會有部分的重合
- 這個不細說了(就是懶)
- 拓展選項和高級選型, 會有部分的重合
- 常見參數就是這些
-
-
高級選項
-
開發者選項
- 相對高級
- 不保證所有 JVM 都有支持
-
分類
-
高級運行時
- 配置 JVM
-
高級維護性
- 調試
- 收集系統信息
-
高級GC
- 選擇 GC
- 控制 GC 行為
-
高級JIT
- 控制 JIT 的編譯方式
- 即時編譯的那個東西
- 控制 JIT 的編譯方式
-
-
例如
# 同 -Xmx -XX:MaxHeapSize=size # 同 -Xms -XX:InitialHeapSize=size # 日志 -XX:LogFile=path
-
-
-
ref
- java的-D命令行參數
- 把命令行選項, 歸為了 命令行參數
- 只看 Java 啟動參數 那一小塊
- 雖然說得不完全, 但是簡單清晰, 有個直觀的認識
- java命令行介紹
- 講得很清晰
- Java -X命令
- ibm java options
- java JVM 參數 -Xms -Xmx -Xmn -Xss 調優總結
- ibm java options
- JVM調優總結
- java的-D命令行參數
3. 屬性
-
概述
- 配置 環境變量
- 其實也是 java 標准選項的一部分
-
命令
# 如果 value 帶空格, 需要 "" 引起來 > java -D<key>=<value> <mainClass>
-
查看
-
代碼
# 1. 獲取 property # 值 是 String System.getProperty("<key>") # 2. 設置 property System.setProperty("<key>", "<value>") # 3. 輸出所有屬性 # 略
-
-
ref
4. 參數
-
概述
- 剩下的就是參數了
-
命令
> java <mainClass> [arg0] [arg1]...
-
查看
- main 方法的參數 args[] 就是輸入的參數
- String 類型字符串
- 第一個參數下標為 0
- 如果碰到帶空格的整體, 可以用 "" 連接
- main 方法的參數 args[] 就是輸入的參數
-
ref