`

(转)Java命令参数说明大全

阅读更多

Java命令参数说明大全

序言: 

Java 在运行已编译完成的类时,是通过 java 虚拟机来装载和执行的,java 虚拟机通过操作
系统命令 JAVA_HOME\bin\java –option 来启动,-option 为虚拟机参数,JAVA_HOME 为JDK
安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运
行模式有更深入理解。
 
一、  查看参数列表: 

虚拟机参数分为基本和扩展两类,在命令行中输入 JAVA_HOME\bin\java 就可得到基本参数
列表,
 
在命令行输入 JAVA_HOME\bin\java –X 就可得到扩展参数列表。
 
二、  基本参数说明:
 
1.  -client,-server
 
这两个参数用于设置虚拟机使用何种运行模式,client 模式启动比较快,但运行时性能和
内存管理效率不如 server 模式,通常用于客户端应用程序。相反,server 模式启动比 client
慢,但可获得更高的运行性能。
 
在 windows上,缺省的虚拟机类型为 client 模式,如果要使用 server模式,就需要在启动
虚拟机时加-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 文件,虚拟机首先搜索这些包文件,用
System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。
 
Extension 是位于 jre\lib\ext 目录下的 jar 文件,虚拟机在搜索完 Bootstrap 后就搜索该
目录下的 jar 文件。用 System. getProperty("java.ext.dirs”)可得到虚拟机使用
Extension 搜索路径。
 
User classes 搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。
 
 
4.  -classpath
告知虚拟机搜索目录名、jar 文档名、zip 文档名,之间用分号;分隔。
 
例如当你自己开发了公共类并包装成一个 common.jar 包,在使用 common.jar 中的类时,就
需要用-classpath common.jar 告诉虚拟机从 common.jar 中查找该类,否则虚拟机就会抛
出 java.lang.NoClassDefFoundError异常,表明未找到类定义。
 
在运行时可用 System.getProperty(“java.class.path”)得到虚拟机查找类的路径。
 
 
使用-classpath 后虚拟机将不再使用 CLASSPATH 中的类搜索路径,如果-classpath 和
CLASSPATH 都没有设置,则虚拟机使用当前路径(.)作为类搜索路径。
 
推荐使用-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<propertyName>=value
在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用

 
当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
 
 
7.  -verbose:gc
在虚拟机发生内存回收时在输出设备显示信息,格式如下:
 
[Full GC 268K->168K(1984K), 0.0187390 secs]
 
该参数用来监视虚拟机内存回收的情况。
 
 
8.  -verbose:jni
在虚拟机调用 native 方法时输出设备显示信息,格式如下:
 
[Dynamic-linking native method HelloNative.sum ... JNI]
 
该参数用来监视虚拟机调用本地方法的情况,在发生 jni错误时可为诊断提供便利。
 
 
9.  -version
显示可运行的虚拟机版本信息然后退出。一台机器上装有不同版本的 JDK 时
 
 
10. -showversion
显示版本信息以及帮助信息。
 
 
11. -ea[:<packagename>...|:<classname>]
12. -enableassertions[:<packagename>...|:<classname>]
 
从 JDK1.4 开始,java 可支持断言机制,用于诊断运行时问题。通常在测试阶段使断言有效,
在正式运行时不需要运行断言。断言后的表达式的值是一个逻辑值,为 true 时断言不运行,
为 false 时断言运行,抛出 java.lang.AssertionError 错误。
 
上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea 可打开
断言机制,不加<packagename>和 classname 时运行所有包和类中的断言,如果希望只运行
某些包或类中的断言,可将包名或类名加到-ea 之后。例如要启动包 com.foo.util 中的断
言,可用命令 –ea:com.foo.util 。
 
 
13. -da[:<packagename>...|:<classname>]
14. -disableassertions[:<packagename>...|:<classname>]
 

用来设置虚拟机关闭断言处理,packagename和classname 的使用方法和-ea 相同。
 
 
15. -esa | -enablesystemassertions
设置虚拟机显示系统类的断言。
 
 
16. -dsa | -disablesystemassertions
设置虚拟机关闭系统类的断言。
 
 
17. -agentlib:<libname>[=<options>]
该参数是 JDK5 新引入的,用于虚拟机装载本地代理库。
 
Libname 为本地代理库文件名,虚拟机的搜索路径为环境变量 PATH 中的路径,options 为传
给本地库启动时的参数,多个参数之间用逗号分隔。在 Windows 平台上虚拟机搜索本地库名
为 libname.dll 的文件,在 Unix 上虚拟机搜索本地库名为 libname.so 的文件,搜索路径环
境变量在不同系统上有所不同,Linux、SunOS、IRIX上为LD_LIBRARY_PATH,AIX上为LIBPATH,
HP-UX 上为SHLIB_PATH。
 
 
例如可使用-agentlib:hprof 来获取虚拟机的运行情况,包括 CPU、内存、线程等的运行数
据,并可输出到指定文件中,可用-agentlib:hprof=help 来得到使用帮助列表。在 jre\bin
目录下可发现 hprof.dll 文件。
 
 
18. -agentpath:<pathname>[=<options>]
设置虚拟机按全路径装载本地库,不再搜索 PATH 中的路径。其他功能和 agentlib 相同。
 
 
19. -javaagent:<jarpath>[=<options>]
虚拟机启动时装入java语言设备代理。Jarpath文件中的mainfest文件必须有Agent-Class
属性。代理类要实现 public static void premain(String agentArgs, Instrumentation
inst)方法。当虚拟机初始化时,将按代理类的说明顺序调用 premain方法。
 
参见:java.lang.instrument
 
 
 
三、  扩展参数说明
 
1.  -Xmixed

设置-client 模式虚拟机对使用频率高的方式进行 Just-In-Time 编译和执行,对其他方法
使用解释方式执行。该方式是虚拟机缺省模式。
 
2.  -Xint
设置-client模式下运行的虚拟机以解释方式执行类的字节码,不将字节码编译为本机码。
 
3.  -Xbootclasspath:path
4.  -Xbootclasspath/a:path
5.  -Xbootclasspath/p:path
 
改变虚拟机装载缺省系统运行包 rt.jar 而从-Xbootclasspath 中设定的搜索路径中装载系
统运行类。除非你自己能写一个运行时,否则不会用到该参数。
 
/a:将在缺省搜索路径后加上 path 中的搜索路径。
 
/p:在缺省搜索路径前先搜索 path 中的搜索路径。
 
6.  -Xnoclassgc
关闭虚拟机对 class 的垃圾回收功能。
 
 
7.  -Xincgc
启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收
造成的暂停时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分 CPU 在应用程序
上的功能。
 
8.  -Xloggc:<file>
将虚拟机每次垃圾回收的信息写到日志文件中,文件名由 file 指定,文件格式是平文件,
内容和-verbose:gc 输出内容相同。
 
 
9.  -Xbatch
虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch参数将关
闭虚拟机后台编译,在前台编译完成后再执行。
 
 
10. -Xms<size>
设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为 1024 的整数倍并且要大于
1MB,可用 k(K)或m(M)为单位来设置较大的内存数。初始堆大小为 2MB。
 
例如:-Xms6400K,-Xms256M
 
 
11. -Xmx<size>

设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为 1024 整数倍,并且要大
于 2MB。可用 k(K)或 m(M)为单位来设置较大的内存数。缺省堆最大值为 64MB。
 
例如:-Xmx81920K,-Xmx80M
 
当应用程序申请了大内存运行时虚拟机抛出 java.lang.OutOfMemoryError: Java heap
space 错误,就需要使用-Xmx 设媒洗蟮目捎媚诖娑选?BR>
 
12. -Xss<size>
设置线程栈的大小,缺省单位为字节。与-Xmx 类似,也可用 K 或 M 来设置较大的值。通常
操作系统分配给线程栈的缺省大小为 1MB。
 
另外也可在 java 中创建线程对象时设置栈的大小,构造函数原型为 Thread(ThreadGroup
group, Runnable target, String name, long stackSize)。
 
13. -Xprof
输出 CPU 运行时的诊断信息。
 
 
14. -Xfuture
对类文件进行严格格式检查,以保证类代码符合类代码规范。为保持向后兼容,虚拟机缺省
不进行严格的格式检查。
 
 
15. -Xrs
减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式
运行时使用(如 Servlet)。
 
 
16. -Xcheck:jni
调用 JNI 函数时进行附加的检查,特别地虚拟机将校验传递给 JNI 函数参数的合法性,在本
地代码中遇到非法数据时,虚拟机将报一个致命错误而终止。使用该参数后将造成性能下降。 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CodingMouse/archive/2008/05/17/2453325.aspx

分享到:
评论

相关推荐

    Java命令参数说明大全

    ### Java命令参数详解 #### 序言 Java作为全球广泛使用的编程语言之一,其强大的功能和灵活性离不开Java虚拟机(JVM)的支持。在运行Java程序时,通过JVM的各种命令行参数,开发者可以精细地控制JVM的行为,优化...

    Java命令行运行参数说明大全.txt

    #### 三、基本参数说明 ##### 1. `-client` 和 `-server` - **-client**:此参数指示JVM使用客户端模式。客户端模式的JVM通常启动速度较快,但在运行时性能和内存管理效率方面不如服务器模式。它适合于需要快速...

    java实现ffmepg hls 转流命令.zip

    这个名为"java实现ffmepg hls 转流命令.zip"的压缩包包含的资源是用于在Java环境中执行FFmpeg命令来实现HLS转流的代码。以下是一些关键知识点: 1. **Java与FFmpeg交互**:使用Java调用FFmpeg通常是通过Java的子...

    JAVA命令大全.pdf

    从提供的文件内容中,我们可以提炼出关于Java命令的详细知识点,主要涉及Java开发和运行环境下的各种命令工具的用途与使用方法。文件中列举了多个Java相关工具,并简要描述了它们的功能,下面逐一详细说明。 1. ...

    java命令大全

    ### Java命令参数详解 #### 序言 Java作为一种广泛使用的编程语言,其强大的功能和灵活性在很大程度上得益于Java虚拟机(JVM)。JVM能够执行已编译的Java类文件,而这一过程可以通过一系列的参数进行细致的控制,...

    Java开发人员常用DB2命令总结

    ### Java开发人员常用DB2命令总结 #### 一、DB2 实例管理 在DB2中,实例(Instance)是数据库管理系统的一个独立运行环境。对于Java开发者来说,掌握实例的基本操作至关重要。 - **列出所有实例** - **命令**:`...

    java中ping命令ping工具类(循环ping)

    该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。 ping是一个DOS命令,一般用于检测网络通或不通 ,也叫时延,其值越大,速度越慢。 PING (Packet Internet Groper),因特网包探索器,用于测试...

    Java调用Linux命令

    根据提供的文件信息,我们可以深入探讨如何在Java程序中调用Linux命令,并且解析与之相关的技术要点。 ### Java调用Linux命令 Java提供了一种强大的机制来执行操作系统级别的任务,其中包括调用Linux命令。实现这...

    IKVM7.4.5196.0,将java的jar包转换为.dll控件,以使.NET可以使用

    解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。 将java的jar包转换为.dll控件 使用的命令:ikvmc -out:XXXX....参数----参数说明 -out:输出文件----指定输出文

    java-JDK常用命令详解

    Java JDK 常用命令详解 Java JDK 提供了多种命令来帮助开发者更好地使用 Java 语言,以下是 JDK 中常用的命令解释: 1. rmic 命令 rmic 命令用于生成 stub 和 skeleton,它可以将 Java 类编译成可供远程对象使用...

    IKVM7.3.4830.0,将java的jar包转换为.dll控件,以使.NET可以使用

    解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。 将java的jar包转换为.dll控件 使用的命令:ikvmc -out:XXXX....参数----参数说明 -out:输出文件----指定输出文

    Java视频转换FLV

    在Java项目中使用FFmpeg,可以通过调用系统命令行或者使用Java的Runtime类来执行FFmpeg命令。也可以通过第三方库如Xuggle、JAVE(Java Audio Video Encoder)或者FFmpeg4Java来更方便地与FFmpeg交互。 3. **视频...

    WSDL2Java工具包 附带使用说明

    1、安装jdk Java开发环境 2、编辑(包名,输出路径,wsdl)参数并运行WSDL2Java(URL).bat或者WSDL2Java(file).bat后,将在source中生成WebService客户端代码。 3、直接使用生成的代码调用WebService服务即可。

    java web ffmpeg memcoder视频转换为flash

    4. 使用说明文档:`java调用视频转换工具ffmpeg.doc`很可能是详细的使用教程,涵盖了如何配置环境、调用FFmpeg的命令行参数以及如何在Java代码中调用这些命令。阅读这份文档对于理解整个转换过程至关重要。 5. 其他...

    java ffmpeg mp4 转ogg

    FFmpeg 是一个强大的跨平台工具,用于处理各种音视频格式,而 Java 可以提供一个方便的编程接口来调用 FFmpeg 命令。下面我们将详细探讨如何实现这个转换过程。 首先,你需要在你的项目环境中安装 FFmpeg。这通常...

    Java8 jdk安装包

    3. **配置环境变量**:安装完成后,需要配置系统环境变量,确保系统能够找到Java命令。需添加`JAVA_HOME`,指向JDK的安装路径,如`C:\Program Files\Java\jdk1.8.0_版本号`。同时,修改`Path`变量,添加 `%JAVA_HOME...

    Java_Cmd_Para.rar_java_para

    在“Java命令参数说明大全.pdf”中,你可能会找到以下一些重要的JVM选项: 1. **内存设置**: - `-Xms` 和 `-Xmx`:分别用于设置JVM初始堆大小和最大堆大小,例如`-Xms256m -Xmx1024m`。 - `-XX:NewSize` 和 `-XX...

    第三方调用U9服务说明(Java平台).docx

    ### 第三方调用U9服务说明(Java平台) #### 一、概述 本文档主要介绍如何在Java平台上通过第三方系统调用U9服务的过程。U9服务提供了丰富的接口供外部系统进行集成,使得数据能够在不同系统之间高效地流动。本...

Global site tag (gtag.js) - Google Analytics