Java在运行已编译完成的类时,是经过java虚拟机来装载和执行的,java虚拟机经过操做系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,经过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深刻理解。java
使用-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
在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用System.getProperty(“propertyName”)获得value的值。
若是value中有空格,则须要用双引号将该值括起来,如-Dname=”space string”。
该参数一般用于设置系统级全局变量值,如配置文件路径,应为该属性在程序中任何地方均可访问。windows
其次,用java -X 命令查看JVM的配置说明:
运行后以下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据本身的理解翻译成中文了(不许确的地方还请各位博友斧正)
-----------------------------------------------------------------------
D:\j2sdk15\bin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-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配置参数中文说明:
-----------------------------------------------------------------------
一、-Xmixed mixed mode execution (default)
混合模式执行
二、-Xint interpreted mode execution only
解释模式执行
三、-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
设置zip/jar资源或者类(.class文件)存放目录路径
三、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
追加zip/jar资源或者类(.class文件)存放目录路径
四、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
预先加载zip/jar资源或者类(.class文件)存放目录路径
五、-Xnoclassgc disable class garbage collection
关闭类垃圾回收功能
六、-Xincgc enable incremental garbage collection
开启类的垃圾回收功能
七、-Xloggc:<file> log GC status to a file with time stamps
记录垃圾回日志到一个文件。
八、-Xbatch disable background compilation
关闭后台编译
九、-Xms<size> set initial Java heap size
设置JVM初始化堆内存大小
十、-Xmx<size> set maximum Java heap size
设置JVM最大的堆内存大小
十一、-Xss<size> set java thread stack size
设置JVM栈内存大小
十二、-Xprof output cpu profiling data
输入CPU概要表数据
1三、-Xfuture enable strictest checks, anticipating future default
执行严格的代码检查,预测可能出现的状况
1四、-Xrs reduce use of OS signals by Java/VM (see documentation)
经过JVM还原操做系统信号
1五、-Xcheck:jni perform. additional checks for JNI functions
对JNI函数执行检查
1六、-Xshare:off do not attempt to use shared class data
尽量不去使用共享类的数据
1七、-Xshare:auto use shared class data if possible (default)
尽量的使用共享类的数据
1八、-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:\j2sdk15\bin>javac HelloWorld.java
D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
Hello World!