<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 43,comments - 75,trackbacks - 0
    pdf版本下載
     

    Java命令參數(shù)說(shuō)明大全

    日期

    整理人

    版本

    備注

    2007-12-17

    夢(mèng)源

    1.0

     

    序言:

    Java在運(yùn)行已編譯完成的類時(shí),是通過(guò)java虛擬機(jī)來(lái)裝載和執(zhí)行的,java虛擬機(jī)通過(guò)操作系統(tǒng)命令JAVA_HOME"bin"java –option 來(lái)啟動(dòng),-option為虛擬機(jī)參數(shù),JAVA_HOME為JDK安裝路徑,通過(guò)這些參數(shù)可對(duì)虛擬機(jī)的運(yùn)行狀態(tài)進(jìn)行調(diào)整,掌握參數(shù)的含義可對(duì)虛擬機(jī)的運(yùn)行模式有更深入理解。

    一、         查看參數(shù)列表:

    虛擬機(jī)參數(shù)分為基本和擴(kuò)展兩類,在命令行中輸入JAVA_HOME"bin"java 就可得到基本參數(shù)列表,

    在命令行輸入JAVA_HOME"bin"java –X 就可得到擴(kuò)展參數(shù)列表。

    二、         基本參數(shù)說(shuō)明:

    1.     -client,-server

    這兩個(gè)參數(shù)用于設(shè)置虛擬機(jī)使用何種運(yùn)行模式,client模式啟動(dòng)比較快,但運(yùn)行時(shí)性能和內(nèi)存管理效率不如server模式,通常用于客戶端應(yīng)用程序。相反,server模式啟動(dòng)比client慢,但可獲得更高的運(yùn)行性能。

    在windows上,缺省的虛擬機(jī)類型為client模式,如果要使用server模式,就需要在啟動(dòng)虛擬機(jī)時(shí)加-server參數(shù),以獲得更高性能,對(duì)服務(wù)器端應(yīng)用,推薦采用server模式,尤其是多個(gè)CPU的系統(tǒng)。在Linux,Solaris上缺省采用server模式。

    2.     -hotspot

    含義與client相同,jdk1.4以前使用的參數(shù),jdk1.4開始不再使用,代之以client。

    3.     -classpath,-cp

    虛擬機(jī)在運(yùn)行一個(gè)類時(shí),需要將其裝入內(nèi)存,虛擬機(jī)搜索類的方式和順序如下:

    Bootstrap classes,Extension classes,User classes。

    Bootstrap 中的路徑是虛擬機(jī)自帶的jar或zip文件,虛擬機(jī)首先搜索這些包文件,用System.getProperty("sun.boot.class.path")可得到虛擬機(jī)搜索的包名。

    Extension是位于jre"lib"ext目錄下的jar文件,虛擬機(jī)在搜索完Bootstrap后就搜索該目錄下的jar文件。用System. getProperty("java.ext.dirs”)可得到虛擬機(jī)使用Extension搜索路徑。

    User classes搜索順序?yàn)楫?dāng)前目錄、環(huán)境變量 CLASSPATH、-classpath。

    4.     -classpath

    告知虛擬機(jī)搜索目錄名、jar文檔名、zip文檔名,之間用分號(hào);分隔。

    例如當(dāng)你自己開發(fā)了公共類并包裝成一個(gè)common.jar包,在使用common.jar中的類時(shí),就需要用-classpath common.jar 告訴虛擬機(jī)從common.jar中查找該類,否則虛擬機(jī)就會(huì)拋出java.lang.NoClassDefFoundError異常,表明未找到類定義。

    在運(yùn)行時(shí)可用System.getProperty(“java.class.path”)得到虛擬機(jī)查找類的路徑。

    使用-classpath后虛擬機(jī)將不再使用CLASSPATH中的類搜索路徑,如果-classpath和CLASSPATH都沒(méi)有設(shè)置,則虛擬機(jī)使用當(dāng)前路徑(.)作為類搜索路徑。

    推薦使用-classpath來(lái)定義虛擬機(jī)要搜索的類路徑,而不要使用環(huán)境變量CLASSPATH的搜索路徑,以減少多個(gè)項(xiàng)目同時(shí)使用CLASSPATH時(shí)存在的潛在沖突。例如應(yīng)用1要使用a1.0.jar中的類G,應(yīng)用2要使用a2.0.jar中的類G,a2.0.jar是a1.0.jar的升級(jí)包,當(dāng)a1.0.jar,a2.0.jar都在CLASSPATH中,虛擬機(jī)搜索到第一個(gè)包中的類G時(shí)就停止搜索,如果應(yīng)用1應(yīng)用2的虛擬機(jī)都從CLASSPATH中搜索,就會(huì)有一個(gè)應(yīng)用得不到正確版本的類G。

    5.     -D<propertyName>=value

    在虛擬機(jī)的系統(tǒng)屬性中設(shè)置屬性名/值對(duì),運(yùn)行在此虛擬機(jī)之上的應(yīng)用程序可用System.getProperty(“propertyName”)得到value的值。

    如果value中有空格,則需要用雙引號(hào)將該值括起來(lái),如-Dname=”space string”。

    該參數(shù)通常用于設(shè)置系統(tǒng)級(jí)全局變量值,如配置文件路徑,應(yīng)為該屬性在程序中任何地方都可訪問(wèn)。

    6.     -verbose[:class|gc|jni]

    在輸出設(shè)備上顯示虛擬機(jī)運(yùn)行信息。

    verbose和verbose:class含義相同,輸出虛擬機(jī)裝入的類的信息,顯示的信息格式如下:

    [Loaded java.io.FilePermission$1 from shared objects file]

    當(dāng)虛擬機(jī)報(bào)告類找不到或類沖突時(shí)可用此參數(shù)來(lái)診斷來(lái)查看虛擬機(jī)從裝入類的情況。

    7.     -verbose:gc

    在虛擬機(jī)發(fā)生內(nèi)存回收時(shí)在輸出設(shè)備顯示信息,格式如下:

    [Full GC 268K->168K(1984K), 0.0187390 secs]

    該參數(shù)用來(lái)監(jiān)視虛擬機(jī)內(nèi)存回收的情況。

    8.     -verbose:jni

    在虛擬機(jī)調(diào)用native方法時(shí)輸出設(shè)備顯示信息,格式如下:

    [Dynamic-linking native method HelloNative.sum ... JNI]

    該參數(shù)用來(lái)監(jiān)視虛擬機(jī)調(diào)用本地方法的情況,在發(fā)生jni錯(cuò)誤時(shí)可為診斷提供便利。

    9.     -version

    顯示可運(yùn)行的虛擬機(jī)版本信息然后退出。一臺(tái)機(jī)器上裝有不同版本的JDK時(shí)

    10.-showversion

    顯示版本信息以及幫助信息。

    11.-ea[:<packagename>...|:<classname>]

    12.-enableassertions[:<packagename>...|:<classname>]

    從JDK1.4開始,java可支持?jǐn)嘌詸C(jī)制,用于診斷運(yùn)行時(shí)問(wèn)題。通常在測(cè)試階段使斷言有效,在正式運(yùn)行時(shí)不需要運(yùn)行斷言。斷言后的表達(dá)式的值是一個(gè)邏輯值,為true時(shí)斷言不運(yùn)行,為false時(shí)斷言運(yùn)行,拋出java.lang.AssertionError錯(cuò)誤。

    上述參數(shù)就用來(lái)設(shè)置虛擬機(jī)是否啟動(dòng)斷言機(jī)制,缺省時(shí)虛擬機(jī)關(guān)閉斷言機(jī)制,用-ea可打開斷言機(jī)制,不加<packagename>和classname時(shí)運(yùn)行所有包和類中的斷言,如果希望只運(yùn)行某些包或類中的斷言,可將包名或類名加到-ea之后。例如要啟動(dòng)包c(diǎn)om.foo.util中的斷言,可用命令 –ea:com.foo.util 。

    13.-da[:<packagename>...|:<classname>]

    14.-disableassertions[:<packagename>...|:<classname>]

    用來(lái)設(shè)置虛擬機(jī)關(guān)閉斷言處理,packagename和classname的使用方法和-ea相同。

    15.-esa | -enablesystemassertions

    設(shè)置虛擬機(jī)顯示系統(tǒng)類的斷言。

    16.-dsa | -disablesystemassertions

    設(shè)置虛擬機(jī)關(guān)閉系統(tǒng)類的斷言。

    17.-agentlib:<libname>[=<options>]

    該參數(shù)是JDK5新引入的,用于虛擬機(jī)裝載本地代理庫(kù)。

    Libname為本地代理庫(kù)文件名,虛擬機(jī)的搜索路徑為環(huán)境變量PATH中的路徑,options為傳給本地庫(kù)啟動(dòng)時(shí)的參數(shù),多個(gè)參數(shù)之間用逗號(hào)分隔。在Windows平臺(tái)上虛擬機(jī)搜索本地庫(kù)名為libname.dll的文件,在Unix上虛擬機(jī)搜索本地庫(kù)名為libname.so的文件,搜索路徑環(huán)境變量在不同系統(tǒng)上有所不同,Linux、SunOS、IRIX上為L(zhǎng)D_LIBRARY_PATH,AIX上為L(zhǎng)IBPATH,HP-UX上為SHLIB_PATH。

    例如可使用-agentlib:hprof來(lái)獲取虛擬機(jī)的運(yùn)行情況,包括CPU、內(nèi)存、線程等的運(yùn)行數(shù)據(jù),并可輸出到指定文件中,可用-agentlib:hprof=help來(lái)得到使用幫助列表。在jre"bin目錄下可發(fā)現(xiàn)hprof.dll文件。

    18. -agentpath:<pathname>[=<options>]

    設(shè)置虛擬機(jī)按全路徑裝載本地庫(kù),不再搜索PATH中的路徑。其他功能和agentlib相同。

    19.-javaagent:<jarpath>[=<options>]

    虛擬機(jī)啟動(dòng)時(shí)裝入java語(yǔ)言設(shè)備代理。Jarpath文件中的mainfest文件必須有Agent-Class屬性。代理類要實(shí)現(xiàn)public static void premain(String agentArgs, Instrumentation inst)方法。當(dāng)虛擬機(jī)初始化時(shí),將按代理類的說(shuō)明順序調(diào)用premain方法。

    參見(jiàn):java.lang.instrument

    三、         擴(kuò)展參數(shù)說(shuō)明

    1.     -Xmixed

    設(shè)置-client模式虛擬機(jī)對(duì)使用頻率高的方式進(jìn)行Just-In-Time編譯和執(zhí)行,對(duì)其他方法使用解釋方式執(zhí)行。該方式是虛擬機(jī)缺省模式。

    2.     -Xint

    設(shè)置-client模式下運(yùn)行的虛擬機(jī)以解釋方式執(zhí)行類的字節(jié)碼,不將字節(jié)碼編譯為本機(jī)碼。

    3.     -Xbootclasspath:path

    4.     -Xbootclasspath/a:path

    5.     -Xbootclasspath/p:path

    改變虛擬機(jī)裝載缺省系統(tǒng)運(yùn)行包rt.jar而從-Xbootclasspath中設(shè)定的搜索路徑中裝載系統(tǒng)運(yùn)行類。除非你自己能寫一個(gè)運(yùn)行時(shí),否則不會(huì)用到該參數(shù)。

    /a:將在缺省搜索路徑后加上path 中的搜索路徑。

    /p:在缺省搜索路徑前先搜索path中的搜索路徑。

    6.     -Xnoclassgc

    關(guān)閉虛擬機(jī)對(duì)class的垃圾回收功能。

    7.     -Xincgc

    啟動(dòng)增量垃圾收集器,缺省是關(guān)閉的。增量垃圾收集器能減少偶然發(fā)生的長(zhǎng)時(shí)間的垃圾回收造成的暫停時(shí)間。但增量垃圾收集器和應(yīng)用程序并發(fā)執(zhí)行,因此會(huì)占用部分CPU在應(yīng)用程序上的功能。

    8.     -Xloggc:<file>

    將虛擬機(jī)每次垃圾回收的信息寫到日志文件中,文件名由file指定,文件格式是平文件,內(nèi)容和-verbose:gc輸出內(nèi)容相同。

    9.     -Xbatch

    虛擬機(jī)的缺省運(yùn)行方式是在后臺(tái)編譯類代碼,然后在前臺(tái)執(zhí)行代碼,使用-Xbatch參數(shù)將關(guān)閉虛擬機(jī)后臺(tái)編譯,在前臺(tái)編譯完成后再執(zhí)行。

    10.-Xms<size>

    設(shè)置虛擬機(jī)可用內(nèi)存堆的初始大小,缺省單位為字節(jié),該大小為1024的整數(shù)倍并且要大于1MB,可用k(K)或m(M)為單位來(lái)設(shè)置較大的內(nèi)存數(shù)。初始堆大小為2MB。

    例如:-Xms6400K,-Xms256M

    11.-Xmx<size>

    設(shè)置虛擬機(jī)內(nèi)存堆的最大可用大小,缺省單位為字節(jié)。該值必須為1024整數(shù)倍,并且要大于2MB??捎胟(K)或m(M)為單位來(lái)設(shè)置較大的內(nèi)存數(shù)。缺省堆最大值為64MB。

    例如:-Xmx81920K,-Xmx80M

    當(dāng)應(yīng)用程序申請(qǐng)了大內(nèi)存運(yùn)行時(shí)虛擬機(jī)拋出java.lang.OutOfMemoryError: Java heap space錯(cuò)誤,就需要使用-Xmx設(shè)媒洗蟮目捎媚詿娑選?BR>

    12.-Xss<size>

    設(shè)置線程棧的大小,缺省單位為字節(jié)。與-Xmx類似,也可用K或M來(lái)設(shè)置較大的值。通常操作系統(tǒng)分配給線程棧的缺省大小為1MB。

    另外也可在java中創(chuàng)建線程對(duì)象時(shí)設(shè)置棧的大小,構(gòu)造函數(shù)原型為Thread(ThreadGroup group, Runnable target, String name, long stackSize)。

    13.-Xprof

    輸出CPU運(yùn)行時(shí)的診斷信息。

    14.-Xfuture

    對(duì)類文件進(jìn)行嚴(yán)格格式檢查,以保證類代碼符合類代碼規(guī)范。為保持向后兼容,虛擬機(jī)缺省不進(jìn)行嚴(yán)格的格式檢查。

    15.-Xrs

    減少虛擬機(jī)中操作系統(tǒng)的信號(hào)(singals)的使用。該參數(shù)通常用在虛擬機(jī)以后臺(tái)服務(wù)方式運(yùn)行時(shí)使用(如Servlet)。

    16.-Xcheck:jni

    調(diào)用JNI函數(shù)時(shí)進(jìn)行附加的檢查,特別地虛擬機(jī)將校驗(yàn)傳遞給JNI函數(shù)參數(shù)的合法性,在本地代碼中遇到非法數(shù)據(jù)時(shí),虛擬機(jī)將報(bào)一個(gè)致命錯(cuò)誤而終止。使用該參數(shù)后將造成性能下降。

    posted on 2007-12-17 13:38 夢(mèng)源 閱讀(1831) 評(píng)論(6)  編輯  收藏

    FeedBack:
    # re: Java命令參數(shù)說(shuō)明大全
    2007-12-17 19:45 | 朱遠(yuǎn)翔-Apusic技術(shù)支持工程師
    你的東西也不錯(cuò)呀。
    這些東西我已經(jīng)收藏了。
    希望大家共同努力,使我們可以擁有更多實(shí)用的資料。  回復(fù)  更多評(píng)論
      
    # re: Java命令參數(shù)說(shuō)明大全
    2007-12-17 20:38 | Xejuny
    謝謝哥們共享??!  回復(fù)  更多評(píng)論
      
    # re: Java命令參數(shù)說(shuō)明大全
    2007-12-17 21:26 | jakie
    感覺(jué)實(shí)際開發(fā)當(dāng)中沒(méi)怎么用到這些參數(shù)呀!不過(guò)增長(zhǎng)見(jiàn)識(shí)也是好的.哈哈.  回復(fù)  更多評(píng)論
      
    # re: Java命令參數(shù)說(shuō)明大全[未登錄](méi)
    2007-12-17 21:48 | test
    # re: Java命令參數(shù)說(shuō)明大全
    2007-12-18 09:38 | helper
    謝謝哥們共享?。?nbsp; 回復(fù)  更多評(píng)論
      
    # re: Java命令參數(shù)說(shuō)明大全
    2007-12-18 09:47 | 夢(mèng)源
    @jakie
    在開發(fā)Server端時(shí),可能最多用的是 -Xms<size> -Xmx<size> 這兩個(gè)參數(shù),
    設(shè)置服務(wù)啟動(dòng)時(shí)的內(nèi)存大小,還有 -verbose:gc 查看內(nèi)存回收情況.  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费人妻无码不卡中文字幕系| 亚洲精品无码Av人在线观看国产| 美女视频黄的免费视频网页 | 激情五月亚洲色图| 国产亚洲成av片在线观看| 国产zzjjzzjj视频全免费| 亚洲性线免费观看视频成熟| 久久免费视频网站| eeuss影院免费92242部| 亚洲AV日韩AV永久无码色欲| 久久亚洲最大成人网4438| 亚洲视频在线免费看| 久久噜噜噜久久亚洲va久| 久久精品国产亚洲5555| 波多野结衣免费视频观看| 日本牲交大片免费观看| 免费阿v网站在线观看g| 91香焦国产线观看看免费| 免费看搞黄视频网站| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 亚洲精品中文字幕乱码影院| 亚洲国产精品无码久久久不卡| 亚洲日韩在线观看免费视频| 免费在线不卡视频| 免费日韩在线视频| 国产精品国产午夜免费福利看 | 久久亚洲国产成人影院| 亚洲伊人久久大香线蕉啊| 亚洲精品国产手机| 精品亚洲国产成AV人片传媒| 久久精品亚洲一区二区三区浴池| 亚洲va无码专区国产乱码| 国产亚洲av片在线观看16女人 | 伊人久久大香线蕉免费视频| 中文字幕的电影免费网站| 亚洲精品视频免费观看| 国产99精品一区二区三区免费| g0g0人体全免费高清大胆视频| 一级一级一片免费高清| 国产免费伦精品一区二区三区| 美女被免费网站91色|