1. 程式人生 > >java命令行參數說明學習

java命令行參數說明學習

get 比較 server jar文件 分號 雙引號 pat 版本 com

1. -client,-server
這兩個參數用於設置虛擬機使用何種運行模式,client模式啟動比較快,但運行時性能和內存管理效率不如server模式,通常用於客戶端應用程序。相反,server模式啟動比client慢,但可獲得更高的運行性能。
在 windows上,缺省的虛擬機類型為client模式,如果要使用 server模式,就需要在啟動虛擬機時加-server參數,以獲得更高性能,對服務器端應用,推薦采用server模式,尤其是多個CPU的系統。在 Linux,Solaris上缺省采用server模式。

3. -classpath,-cp
虛擬機在運行一個類時,需要將其裝入內存,虛擬機搜索類的方式和順序如下:
Bootstrap classes,Extension classes,User classes。
Bootstrap 中的路徑是虛擬機自帶的jar或zip文件,虛擬機首先搜索這些包文件,用System.getProperty("sun.boot.class.path")可得到虛擬機搜索的包名。
Extension是位於jre"lib"ext目錄下的jar文件,虛擬機在搜索完Bootstrap後就搜索該目錄下的jar文件。用System. getProperty("java.ext.dirs”)可得到虛擬機使用Extension搜索路徑。
User classes搜索順序為當前目錄、環境變量 CLASSPATH、-classpath。
4. -classpath
告知虛擬機搜索目錄名、jar文檔名、zip文檔名,之間用分號;分隔。
例如當你自己開發了公共類並包裝成一個common.jar包,在使用 common.jar中的類時,就需要用-classpath common.jar 告訴虛擬機從common.jar中查找該類,否則虛擬機就會拋出java.lang.NoClassDefFoundError異常,表明未找到類定義。
在運行時可用System.getProperty(“java.class.path”)得到虛擬機查找類的路徑。 使用-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”。
該參數通常用於設置系統級全局變量值,如配置文件路徑,應為該屬性在程序中任何地方都可訪問。

這裏有很多參數 http://xinklabi.iteye.com/blog/837435

java命令行參數說明學習