Java运行参数详解
JRE版本
admindeMacBook-Pro:~ admin$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
TIPS:JDK版本不一定等于JRE版本,这里查询的JRE版本。
标准选项运行参数
在命令行中输入java将展示所有运行参数:
admindeMacBook-Pro:~ admin$ java
用法: java [-options] class [args...](执行类)或 java [-options] -jar jarfile [args...](执行 jar 文件)
其中选项包括:-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server,因为您是在服务器类计算机上运行。-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 : 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。-D<名称>=<值>
设置系统属性-verbose:[class|gc|jni]
启用详细输出-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在未来发行版中删除。需要指定的版本才能运行-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在未来发行版中删除。在版本搜索中包括/排除用户专用 JRE-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
按指定的粒度启用断言-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
禁用具有指定粒度的断言-esa | -enablesystemassertions
启用系统断言-dsa | -disablesystemassertions
禁用系统断言-agentlib:<libname>[=<选项>]
加载本机代理库 <libname>, 例如 -agentlib:hprof另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help-agentpath:<pathname>[=<选项>]
按完整路径名加载本机代理库-javaagent:<jarpath>[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:<imagepath>
使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html
-d32和-d64
指定程序是运行在32位还是64位环境。java -version
命令可以查看到默认的运行环境(64-Bit):
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
详见:http://javavsnet.iteye.com/blog/2006922
-client和-server
指定程序运行的JVM模式。java -version
命令可以查看到默认的运行环境(Server VM):
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
详见:http://merrymode.iteye.com/blog/997100
-D
使用示例:
java -Dfoo="some string" SomeClass
可以使用:System.getProperty("foo")
获取。
-verbose
-java -verbose:class
在程序运行的时候究竟会有多少类被加载;-java –verbose:gc
在虚拟机发生内存回收时在输出设备显示信息;-java -verbose:jni
输出native方法调用的相关情况,一般用于诊断jni调用错误信息。
详见:http://wezly.iteye.com/blog/769901
-ea和-da
开启和关闭断言。
详见:http://blog.csdn.net/leichelle/article/details/7951321/
-agentlib、-agentpath和javaagent
用于加载代理库。
详见:http://www.infoq.com/cn/articles/javaagent-illustrated/
非标准选项运行参数
admindeMacBook-Pro:~ admin$ java -X-Xmixed 混合模式执行 (默认)
-Xint 仅解释模式执行
-Xbootclasspath:<用 : 分隔的目录和 zip/jar 文件>
设置搜索路径以引导类和资源-Xbootclasspath/a:<用 : 分隔的目录和 zip/jar 文件>
附加在引导类路径末尾-Xbootclasspath/p:<用 : 分隔的目录和 zip/jar 文件>
置于引导类路径之前-Xdiag 显示附加诊断消息
-Xnoclassgc 禁用类垃圾收集
-Xincgc 启用增量垃圾收集
-Xloggc:<file> 将 GC 状态记录在文件中 (带时间戳)
-Xbatch 禁用后台编译
-Xms<size> 设置初始 Java 堆大小
-Xmx<size> 设置最大 Java 堆大小
-Xss<size> 设置 Java 线程堆栈大小
-Xprof 输出 cpu 配置文件数据
-Xfuture 启用最严格的检查, 预期将来的默认值
-Xrs 减少 Java/VM 对操作系统信号的使用 (请参阅文档)
-Xcheck:jni 对 JNI 函数执行其他检查
-Xshare:off 不尝试使用共享类数据
-Xshare:auto 在可能的情况下使用共享类数据 (默认)
-Xshare:on 要求使用共享类数据, 否则将失败。
-XshowSettings 显示所有设置并继续
-XshowSettings:all
显示所有设置并继续-XshowSettings:vm 显示所有与 vm 相关的设置并继续
-XshowSettings:properties
显示所有属性设置并继续-XshowSettings:locale
显示所有与区域设置相关的设置并继续-X 选项是非标准选项, 如有更改, 恕不另行通知。
以下选项为 Mac OS X 特定的选项:-XstartOnFirstThread
在第一个 (AppKit) 线程上运行 main() 方法-Xdock:name=<应用程序名称>"
覆盖停靠栏中显示的默认应用程序名称-Xdock:icon=<图标文件的路径>
覆盖停靠栏中显示的默认图标
-Xmixed和-Xint
讲到运行模式就要讲到HotSpot虚拟机,它包括一个解释器和两个编译器(client 和 server,二选一的)。有三种运行模式:
admindeMacBook-Pro:~ admin$ java -Xint -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, interpreted mode)
admindeMacBook-Pro:~ admin$ java -Xcomp -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, compiled mode)
admindeMacBook-Pro:~ admin$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
- mixed mode 解释与编译 混合的执行模式 默认使用这种模式
- interpreted 纯解释模式 禁用JIT编译
- compiled 纯编译模式(如果方法无法编译,则回退到解释模式执行无法编译的方法)
详见:
- http://xiaomogui.iteye.com/blog/857821
- http://www.cnblogs.com/lyhero11/p/5080306.html
-Xbootclasspath:、 -Xbootclasspath/a:、-Xbootclasspath/p:
用于替换java核心api。
详见:http://blog.csdn.net/liangxw1/article/details/51169682
-Xnoclassgc、-Xincgc、-Xloggc:
- -Xnoclassgc 关闭虚拟机对class的垃圾回收功能。
- -Xincgc 启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收造成的暂停时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分CPU在应用程序上的功能。
- -Xloggc: 将虚拟机每次垃圾回收的信息写到日志文件中,文件名由file指定,文件格式是平文件,内容和-verbose:gc输出内容相同。
这三个都是关于垃圾回收相关的选项,GC是java中一块非常重要的内容。具体说明可以参考下面的文章:
http://blog.csdn.net/zhoudaxia/article/details/26093321
http://www.cnblogs.com/cloudwind/archive/2012/08/22/2651208.html
-Xbatch
关闭后台代码编译,强制在前台编译,编译完成之后才能进行代码执行;
默认情况下,jvm在后台进行编译,若没有编译完成,则前台运行代码时以解释模式运行。
-Xms、-Xmx、-Xss
- -Xms 指定jvm堆的初始大小,默认为物理内存的1/64,最小为1M;可以指定单位,比如k、m,若不指定,则默认为字节。
- -Xmx 指定jvm堆的最大值,默认为物理内存的1/4或者1G,最小为2M;单位与-Xms一致。
- -Xss 设置单个线程栈的大小,一般默认为512k。
-Xprof
跟踪正运行的程序,并将跟踪数据在标准输出输出;适合于开发环境调试。
-Xfuture
让jvm对类文件执行严格的格式检查(默认jvm不进行严格格式检查),以符合类文件格式规范,推荐开发人员使用该参数。
-Xrs
减少jvm对操作系统信号(signals)的使用,该参数从1.3.1开始有效;
从jdk1.3.0开始,jvm允许程序在关闭之前还可以执行一些代码(比如关闭数据库的连接池),即使jvm被突然终止;
jvm 关闭工具通过监控控制台的相关事件而满足以上的功能;更确切的说,通知在关闭工具执行之前,先注册控制台的控制handler,然后对 CTRL_C_EVENT, CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT这几类事件直接返回true。
但如果jvm以服务的形式在后台运行(比如servlet引擎),他能接收CTRL_LOGOFF_EVENT事件,但此时并不需要初始化关闭程序;为了避免类似冲突的再次出现,从jdk1.3.1开始提供-Xrs参数;当此参数被设置之后,jvm将不接收控制台的控制handler,也就是说他不监控和处理CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, orCTRL_SHUTDOWN_EVENT事件。
-Xcheck:jni
对JNI函数进行附加check;此时jvm将校验传递给JNI函数参数的合法性,在本地代码中遇到非法数据时,jmv将报一个致命错误而终止;使用该参数后将造成性能下降,请慎用。
-Xshare:off、 -Xshare:auto、-Xshare:on
类数据共享相关,不是很重要,主要用来提示信息和调试目的的,在以后的发布版本里可能会改变活着取消。
详见:http://blog.chinaunix.net/uid-192136-id-2791974.html
显示配置相关
-XshowSettings 显示所有设置并继续
-XshowSettings:all 显示所有设置并继续
-XshowSettings:vm 显示所有与 vm 相关的设置并继续
VM settings:Max. Heap Size (Estimated): 1.78GErgonomics Machine Class: serverUsing VM: Java HotSpot(TM) 64-Bit Server VM
- -XshowSettings:properties 显示所有属性设置并继续
Property settings:awt.toolkit = sun.lwawt.macosx.LWCToolkitfile.encoding = UTF-8file.encoding.pkg = sun.iofile.separator = /ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16gopherProxySet = falsehttp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16java.awt.graphicsenv = sun.awt.CGraphicsEnvironmentjava.awt.printerjob = sun.lwawt.macosx.CPrinterJobjava.class.path = .java.class.version = 52.0java.endorsed.dirs = /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/endorsedjava.ext.dirs = /Users/admin/Library/Java/Extensions/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/ext/Library/Java/Extensions/Network/Library/Java/Extensions/System/Library/Java/Extensions/usr/lib/javajava.home = /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jrejava.io.tmpdir = /var/folders/5h/_ptcy9qj3wq6rx745z5hlvt40000gn/T/java.library.path = /Users/admin/Library/Java/Extensions/Library/Java/Extensions/Network/Library/Java/Extensions/System/Library/Java/Extensions/usr/lib/java.java.runtime.name = Java(TM) SE Runtime Environmentjava.runtime.version = 1.8.0_111-b14java.specification.name = Java Platform API Specificationjava.specification.vendor = Oracle Corporationjava.specification.version = 1.8java.vendor = Oracle Corporationjava.vendor.url = http://java.oracle.com/java.vendor.url.bug = http://bugreport.sun.com/bugreport/java.version = 1.8.0_111java.vm.info = mixed modejava.vm.name = Java HotSpot(TM) 64-Bit Server VMjava.vm.specification.name = Java Virtual Machine Specificationjava.vm.specification.vendor = Oracle Corporationjava.vm.specification.version = 1.8java.vm.vendor = Oracle Corporationjava.vm.version = 25.111-b14line.separator = \n os.arch = x86_64os.name = Mac OS Xos.version = 10.12.3path.separator = :socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16sun.arch.data.model = 64sun.boot.class.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/resources.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/sunrsasign.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/jsse.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/jce.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/charsets.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/jfr.jar/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/classessun.boot.library.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/libsun.cpu.endian = littlesun.cpu.isalist = sun.io.unicode.encoding = UnicodeBigsun.java.launcher = SUN_STANDARDsun.jnu.encoding = UTF-8sun.management.compiler = HotSpot 64-Bit Tiered Compilerssun.os.patch.level = unknownuser.country = CNuser.dir = /Users/adminuser.home = /Users/adminuser.language = zhuser.name = adminuser.timezone =
- -XshowSettings:locale 显示所有与区域设置相关的设置并继续
Locale settings:default locale = 中文default display locale = 中文 (中国)default format locale = 中文 (中国)available locales = , ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD, ar_SY, ar_TN, ar_YE, be, be_BY, bg, bg_BG, ca, ca_ES, cs, cs_CZ, da, da_DK, de, de_AT, de_CH, de_DE, de_GR, de_LU, el, el_CY, el_GR, en, en_AU, en_CA, en_GB, en_IE, en_IN, en_MT, en_NZ, en_PH, en_SG, en_US, en_ZA, es, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_NI, es_PA, es_PE, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, fi, fi_FI, fr, fr_BE, fr_CA, fr_CH, fr_FR, fr_LU, ga, ga_IE, hi, hi_IN, hr, hr_HR, hu, hu_HU, in, in_ID, is, is_IS, it, it_CH, it_IT, iw, iw_IL, ja, ja_JP, ja_JP_JP_#u-ca-japanese, ko, ko_KR, lt, lt_LT, lv, lv_LV, mk, mk_MK, ms, ms_MY, mt, mt_MT, nl, nl_BE, nl_NL, no, no_NO, no_NO_NY, pl, pl_PL, pt, pt_BR, pt_PT, ro, ro_RO, ru, ru_RU, sk, sk_SK, sl, sl_SI, sq, sq_AL, sr, sr_BA, sr_BA_#Latn, sr_CS, sr_ME, sr_ME_#Latn, sr_RS, sr_RS_#Latn, sr__#Latn, sv, sv_SE, th, th_TH, th_TH_TH_#u-nu-thai, tr, tr_TR, uk, uk_UA, vi, vi_VN, zh, zh_CN, zh_HK, zh_SG, zh_TW
Java运行参数详解相关推荐
- java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty
大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...
- Docker运行参数详解
Docker运行参数详解 docker search 参数: MacdeMacBook-Pro:~ mac$ docker network create --helpUsage: docker net ...
- Java Socket 参数详解
Java socket参数选项: TCP_NODELAY: 表示立即发送数据 SO_RESUSEADDR: 表示是否允许重用socket所绑定的本地地址 SO_TIMEOUT : 表示接收数据时 ...
- java虚拟机参数详解
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\bin\java –option 来启动,-option为虚拟机参数,JAVA_H ...
- java socket参数详解:OOBInline和UrgentData .
TCP的紧急指针,一般都不建议使用,而且不同的TCP/IP实现,也不同,一般说如果你有紧急数据宁愿再建立一个新的TCP/IP连接发送数据,让对方紧急处理.但是,虽然sendUrgentData的参数d ...
- java 可变参数 详解(通俗易懂)
目录 一.概述: 二.格式: 三.注意事项(使用规范): 四.代码演示: 演示规范①~③: 演示规范④: 演示规范⑤: 课堂练习: 代码演示: 输出结果: 五.英文版本讲解: 一.概述: java中, ...
- java命令行参数详解
java 命令参数详解_赶路人儿的博客-CSDN博客_java命令行参数java命令用于启动 java 应用:它首先会启动 java 运行时环境(JRE),然后加载指定的类,调用类的main()方法. ...
- oracle spool 分隔符_sqlplus--spool命令参数详解
sqlplus--SPOOL参数详解 Spool是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西 一.Spool常用的设置 set arraysize 5000; / ...
- java spring启动和终止_springBoot jar启动以停止脚本参数详解
一.启动脚本 Springboot 项目打成jar包后,在Linux环境上一般有如下几种启动方式: 1. "java -jar XXX.jar " 命令结尾没有 "&am ...
最新文章
- 2012 草莓音乐节 [组图]
- python下载word文件-python-docx操作word文件(
- 计网 - 流和缓冲区:缓冲区的 flip 是怎么回事?
- MVC 模式/Servlet/JSP 编译原理剖析:Servlet 组件到底属于 MVC 模式的哪一层?
- Oracle union多表查询
- 2013应届毕业生“人人网”校招应聘总结
- 4.18. 创建与修改时间
- C#笔记17 DataTime类型、断言、internal关键字、GUID、Excel操作、正则表达式、访问剪贴板、设计模式、版本控制
- 专门查英语单词的软件_查英语单词的软件_有道翻译
- SAP FICO面试题
- 笔记14:STM32F4之电容触摸按键
- 介绍几款高级DAC解码芯片(整编)
- Docker学习总结
- Activiti工作流程详解
- 悟空互动:如何让百度更快的收录网站,试试快速收录提交入口!
- IE假死-在地址栏输入URL地址弹出新窗口的解决方法
- 地理信息系统名词解释大全
- 20210327-第一次java笔记
- 数据库原理-并发控制(2-封锁)
- Angular真有React开发人员讲得那么差劲?