1、一切源于梦想Java 命令参数说明大全日期2007-12-17 整理人梦源第 1 页 共 8 页版本1.0备注来源http:/ 查看参数列表:.3二、 基本参数说明:.31. -client,-server.32. -hotspot.33. -classpath,-cp.34. -classpath.45. -D=value .46. -verbose:class|gc|jni .47. -verbose:gc.58. -verbose:jni.59. -version.510. -showversion.511. -ea:.|: .512. -enableassertions:.|: .51
2、3. -da:.|: .514. -disableassertions:.|: .515. -esa | -enablesystemassertions .616. -dsa | -disablesystemassertions .617. -agentlib:= .618. -agentpath:= .619. -javaagent:= .6三、 扩展参数说明.61. -Xmixed.62. -Xint.73. -Xbootclasspath:path .74. -Xbootclasspath/a:path .75. -Xbootclasspath/p:path .76. -Xnoclass
3、gc.77. -Xincgc.78. -Xloggc:.79. -Xbatch.710. -Xms.711. -Xmx.712. -Xss.813. -Xprof.814. -Xfuture.815. -Xrs.816. -Xcheck:jni.8第 2 页 共 8 页一切源于梦想序言: Java 在运行已编译完成的类时,是通过 java 虚拟机来装载和执行的,java 虚拟机通过操作系统命令 JAVA_HOMEbinjava option 来启动,-option 为虚拟机参数,JAVA_HOME 为 JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式
4、有更深入理解。一、 查看参数列表: 虚拟机参数分为基本和扩展两类,在命令行中输入 JAVA_HOMEbinjava 就可得到基本参数列表,在命令行输入 JAVA_HOMEbinjava X 就可得到扩展参数列表。二、 基本参数说明:1. -client,-server这两个参数用于设置虚拟机使用何种运行模式,client 模式启动比较快,但运行时性能和内存管理效率不如 server 模式,通常用于客户端应用程序。相反,server 模式启动比 client慢,但可获得更高的运行性能。在 windows 上,缺省的虚拟机类型为 client 模式,如果要使用 server 模式,就需要在启动虚拟
5、机时加-server 参数,以获得更高性能,对服务器端应用,推荐采用 server 模式,尤其是多个 CPU 的系统。在 Linux,Solaris 上缺省采用 server 模式。2. -hotspot含义与 client 相同,jdk1.4 以前使用的参数,jdk1.4 开始不再使用,代之以 client。 3. -classpath,-cp虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:Bootstrap classes,Extension classes,User classes。 Bootstrap 中的路径是虚拟机自带的 jar 或 zip 文件,虚拟机首先搜
6、索这些包文件,用System.getProperty(“sun.boot.class.path“)可得到虚拟机搜索的包名。第 3 页 共 8 页一切源于梦想Extension 是位于 jrelibext 目录下的 jar 文件,虚拟机在搜索完 Bootstrap 后就搜索该目 录 下 的 jar 文 件 。用 System. getProperty(“java.ext.dirs ”) 可得 到 虚 拟 机 使 用Extension 搜索路径。User classes 搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。 4. -classpath告知虚拟机搜索目录名、jar
7、 文档名、zip 文档名,之间用分号;分隔。例如当你自己开发了公共类并包装成一个 common.jar 包,在使用 common.jar 中的类时,就需要用-classpath common.jar 告诉虚拟机从 common.jar 中查找该类,否则虚拟机就会抛出 java.lang.NoClassDefFoundError 异常,表明未找到类定义。在运行时可用 System.getProperty(“java.class.path”)得到虚拟机查找类的路径。使用-classpath 后虚拟机将不再使用 CLASSPATH 中的类搜索路径,如果-classpath 和CLASSPATH 都没
8、有设置,则虚拟机使用当前路径(.)作为类搜索路径。推荐使用-classpath 来定义虚拟机要搜索的类路径,而不要使用环境变量 CLASSPATH 的搜索路径,以减少多个项目同时使用 CLASSPATH 时存在的潜在冲突。例如应用 1 要使用a1.0.jar 中的类 G,应用 2 要使用 a2.0.jar 中的类 G,a2.0.jar 是 a1.0.jar 的升级包,当a1.0.jar,a2.0.jar 都在 CLASSPATH 中,虚拟机搜索到第一个包中的类 G 时就停止搜索,如果应用 1 应用 2 的虚拟机都从 CLASSPATH 中搜索,就会有一个应用得不到正确版本的类 G。 5. -D
9、=value在 虚 拟 机 的 系 统 属 性 中 设 置 属 性 名 / 值 对 , 运 行 在 此 虚 拟 机 之 上 的 应 用 程 序 可 用System.getProperty(“propertyName”)得到 value 的值。如果 value 中有空格,则需要用双引号将该值括起来,如-Dname=”space string”。该参数通常用于设置系统级全局变量值,如配置文件路径,应为该属性在程序中任何地方都可访问。6. -verbose:class|gc|jni在输出设备上显示虚拟机运行信息。verbose 和 verbose:class 含义相同,输出虚拟机装入的类的信息,显示
10、的信息格式如下: Loaded java.io.FilePermission$1 from shared objects file 第 4 页 共 8 页一切源于梦想当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。7. -verbose:gc在虚拟机发生内存回收时在输出设备显示信息,格式如下:Full GC 268K-168K(1984K), 0.0187390 secs该参数用来监视虚拟机内存回收的情况。8. -verbose:jni在虚拟机调用 native 方法时输出设备显示信息,格式如下:Dynamic-linking native method HelloN
11、ative.sum . JNI该参数用来监视虚拟机调用本地方法的情况,在发生 jni 错误时可为诊断提供便利。9. -version显示可运行的虚拟机版本信息然后退出。一台机器上装有不同版本的 JDK 时10. -showversion显示版本信息以及帮助信息。11. -ea:.|:12. -enableassertions:.|:从 JDK1.4 开始,java 可支持断言机制,用于诊断运行时问题。通常在测试阶段使断言有效,在正式运行时不需要运行断言。断言后的表达式的值是一个逻辑值,为 true 时断言不运行,为 false 时断言运行,抛出 java.lang.AssertionError
12、 错误。上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea 可打开断言机制,不加和 classname 时运行所有包和类中的断言,如果希望只运行某些包或类中的断言,可将包名或类名加到-ea 之后。例如要启动包 com.foo.util 中的断言,可用命令 ea:com.foo.util 。13. -da:.|:14. -disableassertions:.|:第 5 页 共 8 页一切源于梦想用来设置虚拟机关闭断言处理,packagename 和 classname 的使用方法和-ea 相同。15. -esa | -enablesystemassertions设置虚
13、拟机显示系统类的断言。16. -dsa | -disablesystemassertions设置虚拟机关闭系统类的断言。17. -agentlib:=该参数是 JDK5 新引入的,用于虚拟机装载本地代理库。Libname 为本地代理库文件名,虚拟机的搜索路径为环境变量 PATH 中的路径,options 为传给本地库启动时的参数,多个参数之间用逗号分隔。在 Windows 平台上虚拟机搜索本地库名为 libname.dll 的文件,在 Unix 上虚拟机搜索本地库名为 libname.so 的文件,搜索路径环境变量在不同系统上有所不同,Linux、SunOS、IRIX 上为 LD_LIBRAR
14、Y_PATH,AIX 上为 LIBPATH,HP-UX 上为 SHLIB_PATH。 例如可使用-agentlib:hprof 来获取虚拟机的运行情况,包括 CPU、内存、线程等的运行数据,并可输出到指定文件中,可用-agentlib:hprof=help 来得到使用帮助列表。在 jrebin目录下可发现 hprof.dll 文件。18. -agentpath:=设置虚拟机按全路径装载本地库,不再搜索 PATH 中的路径。其他功能和 agentlib 相同。19. -javaagent:=虚拟机启动时装入 java 语言设备代理。Jarpath 文件中的 mainfest 文件必须有 Agen
15、t-Class属性。代理类要实现 public static void premain(String agentArgs, Instrumentation inst)方法。当虚拟机初始化时,将按代理类的说明顺序调用 premain 方法。参见:java.lang.instrument三、 扩展参数说明1. -Xmixed第 6 页 共 8 页一切源于梦想设置-client 模式虚拟机对使用频率高的方式进行 Just-In-Time 编译和执行,对其他方法使用解释方式执行。该方式是虚拟机缺省模式。2. -Xint设置-client 模式下运行的虚拟机以解释方式执行类的字节码,不将字节码编译为本机
16、码。 3. -Xbootclasspath:path4. -Xbootclasspath/a:path5. -Xbootclasspath/p:path改变虚拟机装载缺省系统运行包 rt.jar 而从-Xbootclasspath 中设定的搜索路径中装载系统运行类。除非你自己能写一个运行时,否则不会用到该参数。/a:将在缺省搜索路径后加上 path 中的搜索路径。/p:在缺省搜索路径前先搜索 path 中的搜索路径。6. -Xnoclassgc关闭虚拟机对 class 的垃圾回收功能。7. -Xincgc启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收造成的暂停
17、时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分 CPU 在应用程序上的功能。8. -Xloggc:将虚拟机每次垃圾回收的信息写到日志文件中,文件名由 file 指定,文件格式是平文件,内容和-verbose:gc 输出内容相同。9. -Xbatch虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch 参数将关闭虚拟机后台编译,在前台编译完成后再执行。10. -Xms设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为 1024 的整数倍并且要大于1MB,可用 k(K)或 m(M)为单位来设置较大的内存数。初始堆大小为 2MB。 例如:-Xms6400K,
18、-Xms256M11. -Xmx第 7 页 共 8 页一切源于梦想设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为 1024 整数倍,并且要大于 2MB。可用 k(K)或 m(M)为单位来设置较大的内存数。缺省堆最大值为 64MB。例如:-Xmx81920K,-Xmx80M当应用程序申请了大内存运行时虚拟机抛出 java.lang.OutOfMemoryError: Java heap space 错误,就需要使用-Xmx 设媒洗蟮目捎媚诖娑选?BR12. -Xss设置线程栈的大小,缺省单位为字节。与-Xmx 类似,也可用 K 或 M 来设置较大的值。通常操作系统分配给线程栈的缺省大
19、小为 1MB。另外也可在 java 中创建线程对象时设置栈的大小,构造函数原型为 Thread(ThreadGroupgroup, Runnable target, String name, long stackSize)。 13. -Xprof输出 CPU 运行时的诊断信息。14. -Xfuture对类文件进行严格格式检查,以保证类代码符合类代码规范。为保持向后兼容,虚拟机缺省不进行严格的格式检查。15. -Xrs减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式运行时使用(如 Servlet)。16. -Xcheck:jni调用 JNI 函数时进行附加的检查,特别地虚拟机将校验传递给 JNI 函数参数的合法性,在本地代码中遇到非法数据时,虚拟机将报一个致命错误而终止。使用该参数后将造成性能下降。 第 8 页 共 8 页
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。