栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何使用和查找JVM选项

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用和查找JVM选项

文章目录
  • Java程序启动方式
  • JVM选项分类
    • 标准选项
    • 非标准选项
    • 不稳定选项
  • 如何指定选项的值?
  • 如何查看选项的值?
    • 选项适用类型
  • 参考链接

Java程序启动方式
  • 执行类:java [-options] class [args…]

  • 执行 jar 文件: java [-options] -jar jarfile [args…]

options指JVM选项,比如堆内存大小;args指程序接收的参数,也就是public static void main(String[] args) 中的args。

class指启动类文件(.class)的路径,jarfile指启动的jar包路径。

JVM选项分类
前缀类型特点
-标准所有JVM实现都支持
-X非标准不能保证被所有的 JVM实现都支持,变更不另行通知
-XX不稳定不能保证被所有的 JVM实现都支持,变更不另行通知
标准选项

java -help 可以看到所有的标准选项帮助信息,部分结果如下:

其中利用设置系统属性(-D<名称>=<值>)可以用来给Springboot项目jar启动命令中加入一些属性覆盖项目中的配置。

非标准选项

java -X 可以看到所有非标准选项帮助信息,部分结果如下:

不稳定选项

不稳定选项暂时没发现有特定的命令查找出来,但是可以根据文后的查找指令看到相关的结果,也可以去文末尾的参考链接查看。它们的格式如<前缀>:<选项>。

如何指定选项的值?

标准选项(-)和非标准选项(-X)根据帮助信息给出的格式写就可以了。

非标准选项有点特殊,如果选项类型是布尔类型(bool)则用+表示使用(true),用-表示不使用(false),写在选项名前面,比如使用G1垃圾收集器(-XX:+UseG1GC);如果是其他类型一般在选项后加=并指定值,比如设置元空间大小为128兆(-XX:metaspaceSize=128m)。

如何查看选项的值?

有三个非标选项可以让java命令打印出当前语句的选项信息(类型 | 选项名 | 值 | 适用类型)

选项作用
-XX:+PrintFlagsInitial打印所有选项的默认值
-XX:+PrintFlagsFinal打印所有选项的最终值,执行这条指令时,所有选项的值
-XX:+PrintCommandLineFlags打印有变动的选项值,默认值和最终值有差异的选项

比如执行java -version指令查看JVM版本,同时指定打印所有JVM选项的最终值:

java -XX:+PrintFlagsFinal -version

还可以通过grep对查询结果进行筛选,比如:

java -XX:+PrintFlagsFinal -version | grep G1

选项适用类型
类型含义
product官方支持, JVM内部选项
rw可动态写入的
C1Client JIT(Just In Time) 客户端类型的JVM及时编译器
C2Server JIT(Just In Time) 服务器类型的JVM及时编译器
pdPlatform Dependent 平台独立
lp64仅 64 位JVM
manageable外部定义的并且是可动态写入的
diagnostic用于虚拟机debug的
experimental非官方支持的
参考链接

Oracle - Java 8 JVM 选项

Oracle - Java HotSpot VM 选项

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号