更新時間:2022-11-11 10:31:07 來源:動力節(jié)點(diǎn) 瀏覽3096次
Java在運(yùn)行已編譯完成的類時,是通過java虛擬機(jī)來裝載和執(zhí)行的,java虛擬機(jī)通過操作系統(tǒng)命令啟動,那么java運(yùn)行命令有哪些?動力節(jié)點(diǎn)小編來給大家講解一下這方面的內(nèi)容。
虛擬機(jī)參數(shù)分為基本和擴(kuò)展兩類,在命令行中輸入JAVA_HOME"bin"java 就可得到基本參數(shù)列表,在命令行輸入JAVA_HOME"bin"java –X 就可得到擴(kuò)展參數(shù)列表。
1. -client,-server
這兩個參數(shù)用于設(shè)置虛擬機(jī)使用何種運(yùn)行模式,client模式啟動比較快,但運(yùn)行時性能和內(nèi)存管理效率不如server模式,通常用于客戶端應(yīng)用程序。相反,server模式啟動比client慢,但可獲得更高的運(yùn)行性能。
在 windows上,缺省的虛擬機(jī)類型為client模式,如果要使用 server模式,就需要在啟動虛擬機(jī)時加-server參數(shù),以獲得更高性能,對服務(wù)器端應(yīng)用,推薦采用server模式,尤其是多個CPU的系統(tǒng)。在 Linux,Solaris上缺省采用server模式。
2. -hotspot
含義與client相同,jdk1.4以前使用的參數(shù),jdk1.4開始不再使用,代之以client。
3. -classpath,-cp
虛擬機(jī)在運(yùn)行一個類時,需要將其裝入內(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文檔名,之間用分號;分隔。
例如當(dāng)你自己開發(fā)了公共類并包裝成一個common.jar包,在使用 common.jar中的類時,就需要用-classpath common.jar 告訴虛擬機(jī)從common.jar中查找該類,否則虛擬機(jī)就會拋出java.lang.NoClassDefFoundError異常,表明未找到類定義。
在運(yùn)行時可用System.getProperty(“java.class.path”)得到虛擬機(jī)查找類的路徑。
使用-classpath后虛擬機(jī)將不再使用CLASSPATH中的類搜索路徑,如果-classpath和CLASSPATH都沒有設(shè)置,則虛擬機(jī)使用當(dāng)前路徑(.)作為類搜索路徑。
推薦使用-classpath來定義虛擬機(jī)要搜索的類路徑,而不要使用環(huán)境變量 CLASSPATH的搜索路徑,以減少多個項(xiàng)目同時使用CLASSPATH時存在的潛在沖突。例如應(yīng)用1要使用a1.0.jar中的類G,應(yīng)用2要使用 a2.0.jar中的類G,a2.0.jar是a1.0.jar的升級包,當(dāng)a1.0.jar,a2.0.jar都在CLASSPATH中,虛擬機(jī)搜索到第一個包中的類G時就停止搜索,如果應(yīng)用1應(yīng)用2的虛擬機(jī)都從CLASSPATH中搜索,就會有一個應(yīng)用得不到正確版本的類G。
5. -D=value
在虛擬機(jī)的系統(tǒng)屬性中設(shè)置屬性名/值對,運(yùn)行在此虛擬機(jī)之上的應(yīng)用程序可用System.getProperty(“propertyName”)得到value的值。
如果value中有空格,則需要用雙引號將該值括起來,如-Dname=”space string”。
該參數(shù)通常用于設(shè)置系統(tǒng)級全局變量值,如配置文件路徑,應(yīng)為該屬性在程序中任何地方都可訪問。
以上就是關(guān)于“Java運(yùn)行命令匯總”的介紹,如果大家想了解更多相關(guān)知識,不妨來關(guān)注一下本站的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細(xì)致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743