Java - JVM - 启动命令行简介: 选项, 属性, 参数
- 概述
- 简单介绍一下 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
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出