一 java
(1)基本解读
① JAVA8 官方命令行参数
linux版的java
重点关注: 'java'、'javac'、'jar'、'keytool' 这三个参数
学习方式: 通过'man java'和'官方文档'快速学习
如何在官网搜索 java的命令行参数用法
② 语法格式
③ 描述
1) java命令给我们提供了非常多的命令参数,当然也有'非常多的划分'
2) 主要是'两种'划分:第一种是'按选项'进行划分,第二种是按照'使用环境'区分
④ OPTIONS
1) 标准选项
特点: 以"-"开头,比如-help -version,Java 虚拟机 (JVM) 的所有实现'都保证支持'标准选项
2) 非标准选项
特点:
1) 以"-X"开头,特定于Java HotSpot 虚拟机的通用选项
2) 因此'不能保证'所有 JVM 实现都支持它们,并且可能会'发生变化'
3) 高级选项
特点:
1) 以"-XX"开头,这些是用于'调整' Java HotSpot 虚拟机操作的特定区域的'开发'人员选项
2) 这些区域通常具有'特定的系统要求',并且可能需要对'系统配置参数'的'特权'访问
3) 也'不能保证'所有 JVM 实现都支持它们,并且可能会发生变化
4) 布尔选项
特点:
1) 用于'启用'默认禁用的功能或'禁用'默认启用的功能,此类选项'不需要'参数
2) 布尔-XX选项'使用加号'(-XX:+OptionName) 启用,使用'减号'(-XX:-OptionName)禁用
JDK过时参数
(2)Standard Options
说明: 了解'常用'和'不常用'的参数含义
① -agentlib:libname[=options]
说明: '不常用',了解即可
② -Dproperty=value 重点
注意: '大写D',-D应在'类前'
常见形式:
1) -Dfile.encoding=utf-8 --> '编码'
2) -Dtimezone=GMT+8 --> '时区'
3) -Dspring.config.application=file:/home/kiosk/application.yml -->'配置文件'
强调: 说到底'value'也是"字符串",只要'值字符串'不包含空格,都可以不用"双引号"包括
补充: 设置多个'属性',可以设置多次'-D' 或者 '自定义分隔符,例如:,'分割'key=value'
形式1: -Darg=key1:val1,key2:val2,key3:val3
注意: 需要自己'进行解析'key1:val1,key2:val2,key3:val3,实际是一个'大字符串'
形式2: Darg1=value1 -Darg2=value2 -Darg3=value3 --> "正统"
续: 说到底这个'系统属性值'会被'java'获取,作为字符串处理
系统变量系统属性的区别
重点1: 通过'System.getProperty()'获得运行时'-D'设置的'系统属性'
补充: JVM会'默认预设'很多'系统属性'
重点2: 通过'System.getenv()'获得'系统环境变量'
二者区别: '系统属性'是'局部'的;'系统变量'是'全局'的,在java启动的时候不需要定义就可以获取
③ -jar filename 重点
典型案例: java -jar jenkins.war --httpPort=9001
1) 使用-jar参数时,后面的参数是的'jar或war'文件,'该文件'中包含的是class和资源文件
3) 在manifest文件中'有Main-Class的定义',Main-Class的源码中指定了整个应用的'启动类'
小结: java -jar会去找'jar中'的'manifest文件',去找到Main-Class对应的'真正的启动类'
观察: 解压jar包后,'META-INF文件夹'的MANIFEST.MF文件中的'Main-Class'
java -jar和 java -cp有什么区别
通过 -jar 启动SpringBoost的解读
1) '先' Main-Class: org.springframework.boot.loader.JarLauncher
2) '再' Start-Class: com.wzj.spring.Application
说明: 这个是'我们'工程的启动类,包含'main'方法,是真正的'应用启动类'
+++++++++++ "典型使用案例" +++++++++++
④ -javaagent:jarpath[=options] 了解
⑤ -server 和 -client 了解
1) java虚拟机分为'客户端模式'和'服务器模式'
2) 客户端模式下默认-Xms是1M,-Xmx是64M,适用于'占用内存'小,'启动更快'的产品
3) 服务端模式'默认'-Xms是128M,-Xmx是1024M,启动慢,但运行时性能和内存管理效率高
备注: 适用于'生产'环境
1) java -server 选择虚拟机模式,默认是"server"
2) java虚拟机在'启动应用'时,启动器会对'虚拟机模式'进行'检测'
3) 检测应用是否在服务器上的机器运行;如果'是',那就以'服务器的模式'运行,目的是提高性能
⑥ -help
⑦ -version
应用场景: 通常用来看'java'命令是否可以执行,以及查看'版本'
⑧ -version:release 了解
⑨ 其他参数 了解
(3)Non-Standard Options
堆栈配置参数解析
① -X 常用
② -Xmnsize
③ -Xmssize
④ -Xmxsize 重点
说明: 设置'最大'堆内存大小,超出则'OOM'内存溢出,被'kill'掉
⑤ 案例
参考链接1
参考链接2
(4)args
应用场景: 把java文件当作'脚本'
遗留:postman、jmeter、nacos、selinum、kong深入