欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java啟動(dòng)命令大全(匯總)

 更新時(shí)間:2023年09月19日 12:03:04   作者:kimy  
Java啟動(dòng)命令是所有java應(yīng)用程序的入口,通過它來啟動(dòng)Java運(yùn)行時(shí)環(huán)境,并加載相關(guān)的class,本文希望做一個(gè)Java啟動(dòng)命令的匯總,和各位同道分享,也便于日后作為自己的參考

Java啟動(dòng)命令是所有java應(yīng)用程序的入口,通過它來啟動(dòng)Java運(yùn)行時(shí)環(huán)境,并加載相關(guān)的class。不過由于IDE的盛行,我們Java程序員中的大多數(shù)并不是非常的了解Java啟動(dòng)命令。本文希望做一個(gè)Java啟動(dòng)命令的匯總,和各位同道分享,也便于日后作為自己的參考。

Java啟動(dòng)命令語(yǔ)法

Java啟動(dòng)命令有兩個(gè), java 以及 javaw ,它們的唯一區(qū)別是 javaw 不會(huì)啟動(dòng)一個(gè)控制臺(tái)窗口(啟動(dòng)失敗的時(shí)候會(huì)彈出附有錯(cuò)誤信息的窗口),而 java 會(huì)。不希望有控制臺(tái)的時(shí)候用 javaw ,其它時(shí)候用 java 。它們的語(yǔ)法結(jié)構(gòu)都一樣,只需要記住其中一個(gè)即可。調(diào)用程序有兩種方式,指定Class以及指定jar文件,具體的語(yǔ)法如下:

  • java [options] class [arguments]
  • java [options] -jar file.jar [arguments]
  • javaw [options] class [arguments]
  • javaw [options] -jar file.jar [arguments]

其中[options]表示Java運(yùn)行環(huán)境的可選配置信息,會(huì)影響java運(yùn)行環(huán)境,是性能調(diào)優(yōu)的關(guān)鍵所在,可以傳多個(gè)選擇項(xiàng)。class表示的是包含main函數(shù)的class名稱(含包名)。-jar和file.jar配對(duì)使用,-jar指示用jar方式啟動(dòng),而file.jar表示的時(shí)jar文件的名稱,替換為自己的jar文件名字即可。[arguments]表示的是程序自身的參數(shù),會(huì)被傳到main函數(shù)的參數(shù)數(shù)組里面,為程序自己所使用。

Java啟動(dòng)命令可選項(xiàng)(options)

Java啟動(dòng)命令可選項(xiàng)(options)大致可分為標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)兩種,非標(biāo)準(zhǔn)的可選項(xiàng)不保證在所有平臺(tái)上都實(shí)現(xiàn),并且未來的版本中可能會(huì)被修改且不告知,總之就是不穩(wěn)定(Unstable)。不過有的非標(biāo)準(zhǔn)可選項(xiàng)還是非常有用的,后面我們會(huì)談到。

標(biāo)準(zhǔn)可選項(xiàng)(Standard options)

  • -client-server

以clien或者server模式啟動(dòng),二選一,Java運(yùn)行時(shí)環(huán)境會(huì)依場(chǎng)景來優(yōu)化自己的配置策略。值得指出的是64位的Java不支持client模式,默認(rèn)就是server。不同平臺(tái)的默認(rèn)配置可以參考Server-Class Machine Detection

  • -cp-classpath

最重要的可選項(xiàng)之一,指定Java運(yùn)行時(shí)環(huán)境搜索class的路徑。-cp只是-classpath的簡(jiǎn)寫,做相同的事情,用其中之一即可。多個(gè)路徑用英文里面的分號(hào)分隔。如果-cp和-classpath都沒有使用,CLASSPATH環(huán)境變量也沒用設(shè)定,那么就是當(dāng)前路徑(.)。

  • -Dproperty=value

設(shè)定系統(tǒng)屬性值,比如編碼-Dfile.encoding=UTF-8??梢栽O(shè)定一些系統(tǒng)使用的屬性,也可以用來向程序傳遞值,比如程序的根目錄。 可以通過 System.getProperty("keyname") 來獲取屬性。

  • -help-?

都是要求顯示幫助信息

  • disableassertions[:packagename...|:classname]da[:packagename...|:classname]

禁用斷言,可以指定包名(注意包后面的三個(gè)點(diǎn))或者class的名稱。默認(rèn)就是禁用的。da只是disableassertions的縮寫,使用方法完全一樣。 禁用包: da:org.slf4j... 禁用類: da:org.slf4j.LoggerFactory

  • enableassertions[:packagename...|:classname]ea[:packagename...|:classname]

啟用斷言,可以指定包名(注意包后面的三個(gè)點(diǎn))或者class的名稱。ea只是enableassertions的縮寫,使用方法完全一樣。 啟用包: ea:org.slf4j... 啟用類: ea:org.slf4j.LoggerFactory

  • disablesystemassertionsdsa

禁用系統(tǒng)類(syetem class)斷言

  • enablesystemassertionsesa

啟用系統(tǒng)類(syetem class)斷言

  • -version-showversion

這兩個(gè)都顯示Java的版本信息,不過后者會(huì)把help的信息也顯示出來。

  • verbose:class, verbose:gc, "verbose:jni"

verbose:class顯示class加載信息,verbose:gc顯示Java垃圾回收的信息。verbose:jni顯示JNI(Java Native Interface)信息。

  • -agentlib:agentlibname[=options]-agentpath:pathtoagent[=options]

都是加載本地代理庫(kù)(Native Agent Library),-agentlib只需要library的名稱,且會(huì)根據(jù)不同的操作系統(tǒng)轉(zhuǎn)為對(duì)應(yīng)的文件(Windows為DLL)。 -agentpath指定library的絕對(duì)路徑。

非標(biāo)準(zhǔn)可選項(xiàng)(Nonstandard Options)

非標(biāo)準(zhǔn)的可選項(xiàng)都以-X開始,其中的部分選項(xiàng)如下:

-X顯示所有非標(biāo)準(zhǔn)選項(xiàng)的信息??纯炊加行┦裁捶菢?biāo)準(zhǔn)選項(xiàng)吧。 java -X

  • -Xms<size>

設(shè)置Java堆的初始化大小。例如 -Xms1024m,Java堆的初始化大小就設(shè)置為1G。

  • -Xmx<size>

設(shè)置Java堆的最大值。例如 -Xmx3072m,Java堆的最大值就設(shè)置為3G。

  • -Xss<size>

設(shè)置Java線程棧的值。例如 -Xss128m,Java線程棧的值就設(shè)置為128兆。

  • -Xnoclassgc

禁用Java垃圾回收器。

  • -Xincgc

啟用Java增量式垃圾回收器。

  • -Xmixed

解釋模式和編譯模式混合執(zhí)行

  • -Xint

僅解釋模式執(zhí)行

  • -Xshare:on,-Xshare:off-Xshare:auto

設(shè)定類數(shù)據(jù)共享CDS(Class data sharing)是否開啟。-Xshare:on要求一定要用共享的類數(shù)據(jù);-Xshare:auto表示讓系統(tǒng)自己判斷 是否有類共享數(shù)據(jù),有就用,沒有不用;-Xshare:off禁用共享類數(shù)據(jù)。

  • -Xcheck:jni

針對(duì)JNI函數(shù)做額外的檢查

不穩(wěn)定(Unstable)的選項(xiàng)

不穩(wěn)定的選項(xiàng)當(dāng)然是非標(biāo)準(zhǔn)的,都以-XX開頭。這一類參數(shù)有很多,暫時(shí)只列其中的幾個(gè):

-XX:PermSize<=size>-XX:MaxPermSize<=size>設(shè)置Java永久保存區(qū)域(Permanent Generation Space)的大小。PermSize設(shè)置初始值,MaxPermSize設(shè)置最大值。 該區(qū)域主要存儲(chǔ)class的信息,且不會(huì)被 垃圾回收器回收,如果加載的class過多,就會(huì)報(bào)錯(cuò):java.lang.OutOfMemoryError: PermGen space。 -XX:PermSize=64m -XX:MaxPermSize=128m,表示Java永久保存區(qū)域大小初始化問為64兆,最大為128兆。

-XX:+UseParallelGC開啟并行Java回收器

-XX:+PrintGCDetails顯示比 -verbose:gc 更多更準(zhǔn)確的垃圾回收信息

-XX:+TraceClassLoading顯示類加載以及卸載的信息

程序參數(shù)(arguments)

class或者jar文件之后的字符串會(huì)傳給main函數(shù)的 String[] args 參數(shù),多個(gè)參數(shù)用空格隔開。如果某一個(gè)參數(shù)包含多個(gè)單詞,那么需要用引號(hào)包起來。當(dāng)有很多程序參數(shù),且有的必填,有的可選的時(shí)候,如果不設(shè)計(jì)好,順序是很頭疼的問題。一種解法是傳鍵值對(duì)(key=value),完全不用在意參數(shù)的順序。在main函數(shù)里面把鍵值對(duì)解析成Map,然后再校驗(yàn)以及使用。簡(jiǎn)單的示例代碼如下:

public static void main(String[] args) {
		Map<String, String> arguments = getArguments(args);
		for (String key : arguments.keySet()) {
			System.out.println(key + "=" + arguments.get(key));
		}
	}
	public static Map<String, String> getArguments(String[] args) {
		Map<String, String> arguments = new HashMap<String, String>();
		if (args == null || args.length == 0) {
			return arguments;
		}
		for (String arg : args) {
			int index = arg.indexOf("=");
			// 沒有=,或者=是第一個(gè),都出錯(cuò)。
			if (index < 1) {
				throw new RuntimeException("param must be key value pair");
			}
			String key = arg.substring(0, index);
			String value = arg.substring(index + 1);
			arguments.put(key, value);
		}
		return arguments;
	}

參考鏈接

到此這篇關(guān)于Java啟動(dòng)命令大全的文章就介紹到這了,更多相關(guān)Java啟動(dòng)命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Gson中的TypeToken與泛型擦除詳情

    Gson中的TypeToken與泛型擦除詳情

    這篇文章主要介紹了Gson中的TypeToken與泛型擦除詳情,其Gson類提供了toJson()與fromJson()方法,分別用來序列化與反序列化,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • java實(shí)現(xiàn)多個(gè)文件壓縮成壓縮包

    java實(shí)現(xiàn)多個(gè)文件壓縮成壓縮包

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多個(gè)文件壓縮成壓縮包,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python爬蟲 12306搶票開源代碼過程詳解

    Python爬蟲 12306搶票開源代碼過程詳解

    這篇文章主要介紹了Python爬蟲 12306搶票開源代碼過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot中使用攔截器攔截跳轉(zhuǎn)登錄的兩種實(shí)現(xiàn)方法

    SpringBoot中使用攔截器攔截跳轉(zhuǎn)登錄的兩種實(shí)現(xiàn)方法

    攔截器(Interceptor)是Spring框架提供的一種機(jī)制,用于在請(qǐng)求的生命周期中插入自定義邏輯,如身份驗(yàn)證、日志記錄等,本文將詳細(xì)介紹兩種在SpringBoot中使用攔截器來控制用戶登錄并跳轉(zhuǎn)到指定頁(yè)面的方法,需要的朋友可以參考下
    2024-11-11
  • 詳解SpringBoot注解讀取配置文件的方式

    詳解SpringBoot注解讀取配置文件的方式

    這篇文章主要介紹了詳解SpringBoot注解讀取配置文件的方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • springboot讀取resources下文件的方式詳解

    springboot讀取resources下文件的方式詳解

    最近寫讀取模板文件做一些后續(xù)的處理,將文件放在了項(xiàng)目的resources下,發(fā)現(xiàn)了一個(gè)好用的讀取方法,下面這篇文章主要給大家介紹了關(guān)于springboot讀取resources下文件的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 淺談Java中格式化輸出

    淺談Java中格式化輸出

    這篇文章主要介紹了Java中格式化輸出,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)分析

    java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)分析

    這篇文章主要介紹了java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)分析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 在Spring Boot中使用swagger-bootstrap-ui的方法

    在Spring Boot中使用swagger-bootstrap-ui的方法

    這篇文章主要介紹了在Spring Boot中使用swagger-bootstrap-ui的方法,需要的朋友可以參考下
    2018-01-01
  • Spring MVC中自定義攔截器的實(shí)例講解

    Spring MVC中自定義攔截器的實(shí)例講解

    下面小編就為大家?guī)硪黄猄pring MVC中自定義攔截器的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08

最新評(píng)論