使用-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!
呵呵,這下知足了吧!
實踐:在大型系統或者應用中配置JVM參數
好比你配置IDE工具的參數,常見的有IDEA、Eclipse,這個是在一個配置文件中指定便可。
若是你要在J2EE環境中配置這些參數,那麼你須要在J2EE應用服務器或者Servlet容器相關啓動參數設置處指定,其啓動文件中來配置,Tomcat是在catalina.bat中配置,weblogic和websphere是在其餘地方,具體我就說了,相信玩過的這些大型服務器的人都知道,沒玩過的看看這篇文章,玩玩就知道了,呵呵。
另外經常有人問到jdk的一些相關命令用法,其實,當你看到這裏的時候,你應該知道如何獲取這些命令的用法了。若是你還不會,那麼,建議你去學學DOS,我是沒轍了。若是你會這些,仍是沒有看明白,那麼你趕忙學學英語吧,這樣你就能看懂了。