Java命令行运行参数说明大全--转
?来源:http://xinklabi.iteye.com/blog/837435 Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。 一、???????? 查看参数列表: 二、???????? 基本参数说明: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 6.??? -verbose[:class|gc|jni]在输出设备上显示虚拟机运行信息。verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:[Loaded java.io.FilePermission$1 from shared objects file]当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。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显示版本信息以及帮助信息。?内容来自dedecms?11.-ea[:
一、运行class文件?执行带main方法的class文件,命令行为:java?
?
在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。 其次,用java -X 命令查看JVM的配置说明:
运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)
-----------------------------------------------------------------------
D:j2sdk15bin>java -X
??? -Xmixed?????????? mixed mode execution (default)
??? -Xint???????????? interpreted mode execution only
??? -Xbootclasspath:
????????????????????? set search path for bootstrap classes and resources
??? -Xbootclasspath/a:
????????????????????? append to end of bootstrap class path
??? -Xbootclasspath/p:
????????????????????? prepend in front of bootstrap class path
??? -Xnoclassgc?????? disable class garbage collection
??? -Xincgc?????????? enable incremental garbage collection
??? -Xloggc:
??? -Xbatch?????????? disable background compilation
??? -Xms
??? -Xmx
??? -Xss
??? -Xprof??????????? output cpu profiling data
??? -Xfuture????????? enable strictest checks,anticipating future default
??? -Xrs????????????? reduce use of OS signals by Java/VM (see documentation)
??? -Xcheck:jni?????? perform. additional checks for JNI functions
??? -Xshare:off?????? do not attempt to use shared class data
??? -Xshare:auto????? use shared class data if possible (default)
??? -Xshare:on??????? require using shared class data,otherwise fail.
?
The -X options are non-standard and subject to change without notice.
-----------------------------------------------------------------------
?
JVM配置参数中文说明:
-----------------------------------------------------------------------
1、-Xmixed?????????? mixed mode execution (default)
?混合模式执行
?
2、-Xint???????????? interpreted mode execution only
?解释模式执行
?
3、-Xbootclasspath:
????? set search path for bootstrap classes and resources
?设置zip/jar资源或者类(.class文件)存放目录路径
?
3、-Xbootclasspath/a:
????? append to end of bootstrap class path
?追加zip/jar资源或者类(.class文件)存放目录路径
?
4、-Xbootclasspath/p:
????? prepend in front of bootstrap class path
?预先加载zip/jar资源或者类(.class文件)存放目录路径
?
5、-Xnoclassgc?????? disable class garbage collection
?关闭类垃圾回收功能
?
6、-Xincgc?????????? enable incremental garbage collection
?开启类的垃圾回收功能
?
7、-Xloggc:
?记录垃圾回日志到一个文件。
?
8、-Xbatch?????????? disable background compilation
?关闭后台编译
?
9、-Xms
?设置JVM初始化堆内存大小
?
10、-Xmx
?设置JVM最大的堆内存大小
?
11、-Xss
?设置JVM栈内存大小
?
12、-Xprof??????????? output cpu profiling data
?输入CPU概要表数据
?
13、-Xfuture????????? enable strictest checks,anticipating future default
?执行严格的代码检查,预测可能出现的情况
?
14、-Xrs????????????? reduce use of OS signals by Java/VM (see documentation)
?通过JVM还原操作系统信号
?
15、-Xcheck:jni?????? perform. additional checks for JNI functions
?对JNI函数执行检查
?
16、-Xshare:off?????? do not attempt to use shared class data
?尽可能不去使用共享类的数据
?
17、-Xshare:auto????? use shared class data if possible (default)
?尽可能的使用共享类的数据
?
18、-Xshare:on?????? require using shared class data,otherwise fail.
?尽可能的使用共享类的数据,否则运行失败
?
The -X options are non-standard and subject to change without notice.
-----------------------------------------------------------------------
?
怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。
?
HelloWorld.java
-----------------------------------------------
public class? HelloWorld
{
?public static void main(String[] args)
?{
??System.out.println("Hello World!");
?}
}
?
编译并运行:
D:j2sdk15bin>javac HelloWorld.java
?
D:j2sdk15bin>java -Xms256M -Xmx512M HelloWorld
Hello World!
?
呵呵,这下满足了吧!
?
实践:在大型系统或者应用中配置JVM参数
比如你配置IDE工具的参数,常见的有IDEA、Eclipse,这个是在一个配置文件中指定即可。
如果你要在J2EE环境中配置这些参数,那么你需要在J2EE应用服务器或者Servlet容器相关启动参数设置处指定,其启动文件中来配置,Tomcat是在catalina.bat中配置,weblogic和websphere是在其他地方,具体我就说了,相信玩过的这些大型服务器的人都知道,没玩过的看看这篇文章,玩玩就知道了,呵呵。
另外常常有人问到jdk的一些相关命令用法,其实,当你看到这里的时候,你应该知道如何获取这些命令的用法了。如果你还不会,那么,建议你去学学DOS,我是没辙了。如果你会这些,还是没有看明白,那么你赶紧学学英语吧,这样你就能看懂了。
附录1 基本参数
Microsoft Windows [版本 .C:Userswangwei1>java -<span style="color: #000000;">h
Usage: java [-<span style="color: #000000;">options] class [args...] (to execute a class) or java [-options] -<span style="color: #000000;">jar jarfile [args...] (to execute a jar <span style="color: #0000ff;">file<span style="color: #000000;">) where options include:
C:Userswangwei1> 附录 2: 扩展参数 C:Userswangwei1>java ----Xbootclasspath:
C:Userswangwei1 >(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |