- 概述
- 简单介绍一下 java 命令行相关的参数及属性
1. java 命令行
- 基本
- 命令
> java <mainClass>
- 描述
- 执行 Java 类
- 需要准备好编译完成的 mainClass
- 然后
- 命令
> java -X<options> -XX<options> -D<properties> <mainClass> [arg0] [arg1]...
- 怎么感觉, 东西一下多了好多, 有点懵逼了
- 没事, 慢慢来
- 这些东西, 大概分这么几块
- 选项
- 属性
- 参数
2. 选项
- 概述
- 选项主要的目的, 是对 JVM 做一些调整
- 分类
- 标注选项
- 通用
- 所有版本的 JVM 都要实现的选项
- 例如
-version
-server
-client
- 其他
- 我们后面说的 -D, 其实也包含在其中
- 这个我想单独说
- 具体的例子, 就不一一例举了
- 拓展选项
- 拓展
- hotspot 会实现
- 其他 JVM 未必实现
- 例如
# 最大堆内存
-Xmx3800m
# 初始堆内存
-Xms3800m
# 新生代内存
-Xmn2g
# (每个线程)栈内存大小
-Xss128k
- 其他
- 常见参数就是这些
- 不细讲了
- 数值单位
- 可以自己定, 比较灵活
- 重合
- 拓展选项和高级选型, 会有部分的重合
- 这个不细说了(就是懒)
- 高级选项
- 开发者选项
- 相对高级
- 不保证所有 JVM 都有支持
- 分类
- 高级运行时
- 配置 JVM
- 高级维护性
- 调试
- 收集系统信息
- 高级GC
- 选择 GC
- 控制 GC 行为
- 高级JIT
- 控制 JIT 的编译方式
- 即时编译的那个东西
- 例如
# 同 -Xmx
-XX:MaxHeapSize=size
# 同 -Xms
-XX:InitialHeapSize=size
# 日志
-XX:LogFile=path
- ref
- java的-D命令行参数
- 把命令行选项, 归为了 命令行参数
- 只看 Java 启动参数 那一小块
- 虽然说得不完全, 但是简单清晰, 有个直观的认识
- 讲得很清晰
- Java -X命令
- ibm java options
- java JVM 参数 -Xms -Xmx -Xmn -Xss 调优总结
- ibm java options
- JVM调优总结
3. 属性
- 概述
- 配置 环境变量
- 其实也是 java 标准选项的一部分
- 命令
# 如果 value 带空格, 需要 "" 引起来
> java -D<key>=<value> <mainClass>
- 查看
- 代码
# 1. 获取 property
# 值 是 String
System.getProperty("<key>")
# 2. 设置 property
System.setProperty("<key>", "<value>")
# 3. 输出所有属性
# 略
- ref
- java程序启动参数-D详解
- Java System Properties
- Oracle Doc
- 输出所有属性
- 常用系统属性
4. 参数
- 概述
- 剩下的就是参数了
- 命令
> java <mainClass> [arg0] [arg1]...
- 查看
- main 方法的参数 args[] 就是输入的参数
- String 类型字符串
- 第一个参数下标为 0
- 如果碰到带空格的整体, 可以用 "" 连接
- ref
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出