幾個Java虛擬機(jī)命令行參數(shù)用法說明
本文和大家重點討論一下Java虛擬機(jī)幾個命令行參數(shù)的用法,主要包括運行class文件,運行jar文件中的class,增加Java虛擬機(jī)可以使用的最大內(nèi)存等內(nèi)容,相信本文介紹一定會讓你有所收獲。
Java虛擬機(jī)幾個命令行參數(shù)說明
一、運行class文件
執(zhí)行帶main方法的class文件,Java虛擬機(jī)命令參數(shù)行為:
java<CLASS文件名>
注意:CLASS文件名不要帶文件后綴。class
例如:
javaTest
如果執(zhí)行的class文件是帶包的,即在類文件中使用了:
package<包名>
那應(yīng)該在包的基路徑下執(zhí)行,Java虛擬機(jī)命令行參數(shù):
java<包名>.CLASS文件名
例如:
PackageTest.java中,其包名為:com.ee2ee.test,對應(yīng)的語句為:
packagecom.ee2ee.test;
PackageTest.java及編譯后的class文件PackageTest.class的存放目錄如下:
- classes
- |__com
- |__ee2ee
- |__test
- |__PackageTest.java
- |__PackageTest.class
要運行PackageTest.class,應(yīng)在classes目錄下執(zhí)行:
- javacom.ee2ee.test.PackageTest
#p#二、運行jar文件中的class
原理和運行class文件一樣,只需加上參數(shù)-cp<jar文件名>即可。
例如:執(zhí)行test.jar中的類com.ee2ee.test.PackageTest,命令行如下:
- java-cptest.jarcom.ee2ee.test.PackageTest
三、顯示jdk版本信息
當(dāng)一臺機(jī)器上有多個jdk版本時,需要知道當(dāng)前使用的是那個版本的jdk,使用參數(shù)-version即可知道其版本,命令行為:
- java-version
四、增加Java虛擬機(jī)可以使用的最大內(nèi)存
Java虛擬機(jī)可使用的最大內(nèi)存是有限制的,缺省值通常為64MB或128MB.
如果一個應(yīng)用程序為了提高性能而把數(shù)據(jù)加載內(nèi)存中而占用較大的內(nèi)存,比如超過了默認(rèn)的最大值128MB,需要加大java虛擬機(jī)可使用的最大內(nèi)存,否則會出現(xiàn)OutofMemory(系統(tǒng)內(nèi)存不足)的異常。啟動java時,需要使用如下兩個參數(shù):
-Xmsjava虛擬機(jī)初始化時使用的內(nèi)存大小
-Xmxjava虛擬機(jī)可以使用的最大內(nèi)存
以上兩個命令行參數(shù)中設(shè)置的size,可以帶單位,例如:256m表示256MB
舉例說明:
- java-Xms128m-Xmx256m……
表示Java虛擬機(jī)初始化時使用的內(nèi)存為128MB,可使用的最大內(nèi)存為256MB.
對于tomcat,可以修改其腳本catalina.sh(unix平臺)或catalina.bat(windows平臺),設(shè)置變量JAVA_OPTS即可,例如:
- JAVA_OPTS='-Xms128m-Xmx256m'
【編輯推薦】
- Java虛擬機(jī)概念及體系結(jié)構(gòu)
- 發(fā)現(xiàn)Java虛擬機(jī)內(nèi)存泄露問題
- 深入Java虛擬機(jī):JVM中的Stack和Heap
- Java虛擬機(jī)發(fā)展回顧 為跨平臺而生
- Java虛擬機(jī)(JVM)中的內(nèi)存設(shè)置詳解