導航:首頁 > 編程語言 > java設置啟動參數設置

java設置啟動參數設置

發布時間:2022-03-16 00:23:12

① eclipse怎麼給java文件設置運行參數

運行的方法是,右鍵——》run as——》run configuration——》Arguments——》program arguments
輸入 1 2 3即 每一個參數用空格分開。

② java啟動參數重復時,是前面的參數生效還是後面的生效

Java的參數實際上是傳給main的字元串數組的,所以所有參數都會生效,相當於這個數組含有如下內容。
至於程序要使用哪些參數就不知道了。如果使用的是後面的前面的就沒用。

jvm的參數里應該是後面的參數生效,因為後面的參數會覆蓋前面的參數。

③ 急求!如何設置java ,虛擬機啟動參數(分配內存的大小)的配置,使大型應用的效率最高

java-Xms512m-Xmx1024m

④ 如何設置Java虛擬機JVM啟動內存參數

-Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-Xmn Java Heap Young區大小,不熟悉最好保留默認值;
-Xss 每個線程的Stack大小,不熟悉最好保留默認值;
2. 如何設置JVM內存分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
a. 在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配)

⑤ eclipse中如何設置啟動參數

Eclipse的啟動由$ECLIPSE_HOME/eclipse.ini控制,如果$ECLIPSE_HOME 沒有被定義,則Eclipse安裝目錄下的默認eclipse.ini會生效。

eclipse.ini是一個文本文件,其內容相當於在Eclipse運行時添加到 Eclipse.exe之後的命令行參數。

其格式要求:

1:所有的選項及其相關的參數必須在單獨的一行之內

2:所有在-vmargs之後的參數將會被傳輸給JVM,所有如果所有對Eclipse 設置的參數必須寫在-vmargs之前(就如同你在命令行上使用這些參數一樣)
默認情況下,eclipse.ini的內容如下:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m

上面的配置表示堆空間初始大小為40M,最大為256M,PermGen最大為256M。

指定虛擬機

建議你使用eclipse.ini來指定一個確定的JVM,而不是使用默認的情況,因為很多情況下你無法確認你的Eclipse到底使用的你機器上安裝的哪個JVM,使用eclipse.ini來指定使得你能指定並確認之。

下面的例子將展示如何正確的使用 -vm選項

注意-vm選項的格式有嚴格的要求:
1:-vm選項和它的值(路徑)必須在單獨的一行
2:其值必須嚴格地指向Java可執行文件,而不僅僅只是Java home目錄。
3:-vm選項必須在-vmargs選項之前,之前已經說過,所有在-vmargs之後的選項將會直接被傳遞給JVM

Windows Example

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:\Java\JDK\1.5\bin\javaw.exe
-vmargs
-Xms40m
-Xmx512m

Linux Example

在Linux操作系統中,格式和Windows中很類似

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
/opt/sun-jdk-1.6.0.02/bin/java
-vmargs
-Xms40m
-Xmx512m

Mac OS X Example

指定Java 6:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
-vmargs
-Xms40m
-Xmx512m

堆(Heap)和非堆(Non-heap)內存
按照官方的說法:「Java虛擬機具有一個堆,堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java
虛擬機啟動時創建的。」「在JVM中堆之外的內存稱為非堆內存(Non-heap memory)」。可以看出JVM主要管理兩種類型的內存:堆和非堆。
簡單來說堆就是Java代碼可及的內存,是留給開發人員使用的;
非堆就是JVM留給自己用的,所以方法區、JVM內部處理或優化所需的內存(如JIT編譯後的代碼緩存)、每個類結構(如運行時常數池、欄位和方法數據)以及方法和構造方法
的代碼都在非堆內存中。
堆內存分配:
JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;
JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。
默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;
空餘堆內存大於70%時,JVM會減少堆直到-Xms的最小限制。
因此伺服器一般設置-Xms、-Xmx相等以避免在每次GC 後調整堆的大小。

非堆內存分配:
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;
由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。

JVM內存限制(最大值)
首先JVM內存限制於實際的最大物理內存,假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。
簡單的說就32位處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說
Windows系統下為1.5G-2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。

設置VM參數導致程序無法啟動主要有以下幾種原因:
1) 參數中-Xms的值大於-Xmx,或者-XX:PermSize的值大於-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM內存的最大限制,比如當前操作系統最大內存限制,或者實際的物理內存等等。
說到實際物理內存這里需要說明一點的是,如果你的內存是1024MB,但實際系統中用到的並不可能是1024MB,因為有一部分被硬體佔用了。

為何將上面的參數寫入到eclipse.ini文件Eclipse沒有執行對應的設置?
那為什麼同樣的參數在快捷方式或者命令行中有效而在eclipse.ini文件中是無效的呢?這是因為我們沒有遵守eclipse.ini文件的設置規則:
參數形如「項 值」這種形式,中間有空格的需要換行書寫,如果值中有空格的需要用雙引號包括起來。比如我們使用-vm
C:\Java\jre1.6.0\bin\javaw.exe參數設置虛擬機,在eclipse.ini文件中要寫成這樣:
-vm
C:\Java\jre1.6.0\bin\javaw.exe

按照上面所說的,最後參數在eclipse.ini中可以寫成這個樣子:
-vmargs
-Xms128M
-Xmx512M

-XX:PermSize=64M
-XX:MaxPermSize=128M
實際運行的結果可以通過Eclipse中
「Help」-「About Eclipse SDK」窗口裡面的「Configuration Details」按鈕進行查看。
另外需要說明
的是,Eclipse壓縮包中自帶的eclipse.ini文件內容是這樣的:
-showsplash
org.eclipse.platform

--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m

其中–launcher.XXMaxPermSize(注意最前面是兩個連接線)跟-XX:MaxPermSize參數的含義基本是一樣的,我
覺得唯一的區別就是前者是eclipse.exe啟動的時候設置的參數,而後者是eclipse所使用的JVM中的參數。其實二者設置一個就可以了,所以
這里可以把 –launcher.XXMaxPermSize和下一行使用#注釋掉。

其他的啟動參數。 如果你有一個雙核的CPU,也許可以嘗試這個參數:
-XX:+UseParallelGC
讓GC可以更快的執行。

⑥ javaWeb程序啟動時怎麼獲取或設置系統參數

方法都是想出來的,介紹一種, 可以把要在啟動時運行的放在一個單獨的Servlet的init()方法中 在web.xml中配置這個servlet的load-on-startup 屬性值大於等於0就行了,如果小於0或不設置則是在訪問此servlet時才載入 至於設置為幾如果要優先其他執行那就設置的低些,相反就設置高些 程序啟動時會根據load-on-startup的值由低到高順序載入

⑦ java代碼怎麼設定啟動時的JVM參數

不管是YGC還是Full GC,GC過程中都會對導致程序運行中中斷,正確的選擇不同的GC策略,調整JVM、GC的參數,可以極大的減少由於GC工作,而導致的程序運行中斷方面的問題,進而適當的提高Java程序的工作效率。但是調整GC是以個極為復雜的過程,由於各個程序具備不同的特點,如:web和GUI程序就有很大區別(Web可以適當的停頓,但GUI停頓是客戶無法接受的),而且由於跑在各個機器上的配置不同(主要cup個數,內存不同),所以使用的GC種類也會不同(如何選擇見GC種類及如何選擇)。本文將注重介紹JVM、GC的一些重要參數的設置來提高系統的性能。
GC性能方面的考慮
對於GC的性能主要有2個方面的指標:吞吐量throughput(工作時間不算gc的時間占總的時間比)和暫停pause(gc發生時app對外顯示的無法響應)。
1. Total Heap
默認情況下,vm會增加/減少heap大小以維持free space在整個vm中占的比例,這個比例由MinHeapFreeRatio和MaxHeapFreeRatio指定。
一般而言,server端的app會有以下規則:
對vm分配盡可能多的memory;
將Xms和Xmx設為一樣的值。如果虛擬機啟動時設置使用的內存比較小,這個時候又需要初始化很多對象,虛擬機就必須重復地增加內存。
處理器核數增加,內存也跟著增大。
2. The Young Generation
另外一個對於app流暢性運行影響的因素是young generation的大小。young generation越大,minor collection越少;但是在固定heap size情況下,更大的young generation就意味著小的tenured generation,就意味著更多的major collection(major collection會引發minor collection)。
NewRatio反映的是young和tenured generation的大小比例。NewSize和MaxNewSize反映的是young generation大小的下限和上限,將這兩個值設為一樣就固定了young generation的大小(同Xms和Xmx設為一樣)。
如果希望,SurvivorRatio也可以優化survivor的大小,不過這對於性能的影響不是很大。SurvivorRatio是eden和survior大小比例。
一般而言,server端的app會有以下規則:
首先決定能分配給vm的最大的heap size,然後設定最佳的young generation的大小;
如果heap size固定後,增加young generation的大小意味著減小tenured generation大小。讓tenured generation在任何時候夠大,能夠容納所有live的data(留10%-20%的空餘)。
經驗&&規則
年輕代大小選擇
響應時間優先的應用:盡可能設大,直到接近系統的最低響應時間限制(根據實際情況選擇).在此種情況下,年輕代收集發生的頻率也是最小的.同時,減少到達年老代的對象.
吞吐量優先的應用:盡可能的設置大,可能到達Gbit的程度.因為對響應時間沒有要求,垃圾收集可以並行進行,一般適合8CPU以上的應用.
避免設置過小.當新生代設置過小時會導致:1.YGC次數更加頻繁 2.可能導致YGC對象直接進入舊生代,如果此時舊生代滿了,會觸發FGC.
年老代大小選擇
響應時間優先的應用:年老代使用並發收集器,所以其大小需要小心設置,一般要考慮並發會話率和會話持續時間等一些參數.如果堆設置小了,可以會造成內存碎 片,高回收頻率以及應用暫停而使用傳統的標記清除方式;如果堆大了,則需要較長的收集時間.最優化的方案,一般需要參考以下數據獲得:
並發垃圾收集信息、持久代並發收集次數、傳統GC信息、花在年輕代和年老代回收上的時間比例。
吞吐量優先的應用:一般吞吐量優先的應用都有一個很大的年輕代和一個較小的年老代.原因是,這樣可以盡可能回收掉大部分短期對象,減少中期的對象,而年老代盡存放長期存活對象.
較小堆引起的碎片問題
因為年老代的並發收集器使用標記,清除演算法,所以不會對堆進行壓縮.當收集器回收時,他會把相鄰的空間進行合並,這樣可以分配給較大的對象.但是,當堆空間較小時,運行一段時間以後,就會出現"碎片",如果並發收集器找不到足夠的空間,那麼並發收集器將會停止,然後使用傳統的標記,清除方式進行回收.如果出現"碎片",可能需要進行如下配置:
-XX:+UseCMSCompactAtFullCollection:使用並發收集器時,開啟對年老代的壓縮.
-XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這里設置多少次Full GC後,對年老代進行壓縮
用64位操作系統,Linux下64位的jdk比32位jdk要慢一些,但是吃得內存更多,吞吐量更大
XMX和XMS設置一樣大,MaxPermSize和MinPermSize設置一樣大,這樣可以減輕伸縮堆大小帶來的壓力
使用CMS的好處是用盡量少的新生代,經驗值是128M-256M, 然後老生代利用CMS並行收集, 這樣能保證系統低延遲的吞吐效率。 實際上cms的收集停頓時間非常的短,2G的內存, 大約20-80ms的應用程序停頓時間
系統停頓的時候可能是GC的問題也可能是程序的問題,多用jmap和jstack查看,或者killall -3 java,然後查看java控制台日誌,能看出很多問題。(相關工具的使用方法將在後面的blog中介紹)
仔細了解自己的應用,如果用了緩存,那麼年老代應該大一些,緩存的HashMap不應該無限制長,建議採用LRU演算法的Map做緩存,LRUMap的最大長度也要根據實際情況設定。
採用並發回收時,年輕代小一點,年老代要大,因為年老大用的是並發回收,即使時間長點也不會影響其他程序繼續運行,網站不會停頓
JVM參數的設置(特別是 –Xmx –Xms –Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold等參數的設置沒有一個固定的公式,需要根據PV old區實際數據 YGC次數等多方面來衡量。為了避免promotion faild可能會導致xmn設置偏小,也意味著YGC的次數會增多,處理並發訪問的能力下降等問題。每個參數的調整都需要經過詳細的性能測試,才能找到特定應用的最佳配置。
promotion failed:
垃圾回收時promotion failed是個很頭痛的問題,一般可能是兩種原因產生,第一個原因是救助空間不夠,救助空間里的對象還不應該被移動到年老代,但年輕代又有很多對象需要放入救助空間;第二個原因是年老代沒有足夠的空間接納來自年輕代的對象;這兩種情況都會轉向Full GC,網站停頓時間較長。
解決方方案一:
第一個原因我的最終解決辦法是去掉救助空間,設置-XX:SurvivorRatio=65536 -XX:MaxTenuringThreshold=0即可,第二個原因我的解決辦法是設置為某個值(假設70),這樣年老代空間到70%時就開始執行CMS,年老代有足夠的空間接納來自年輕代的對象。
解決方案一的改進方案:
又有改進了,上面方法不太好,因為沒有用到救助空間,所以年老代容易滿,CMS執行會比較頻繁。我改善了一下,還是用救助空間,但是把救助空間加大,這樣也不會有promotion failed。具體操作上,32位Linux和64位Linux好像不一樣,64位系統似乎只要配置MaxTenuringThreshold參數,CMS還是有暫停。為了解決暫停問題和promotion failed問題,最後我設置-XX:SurvivorRatio=1 ,並把MaxTenuringThreshold去掉,這樣即沒有暫停又不會有promotoin failed,而且更重要的是,年老代和永久代上升非常慢(因為好多對象到不了年老代就被回收了),所以CMS執行頻率非常低,好幾個小時才執行一次,這樣,伺服器都不用重啟了。
-Xmx4000M -Xms4000M -Xmn600M -XX:PermSize=500M -XX:MaxPermSize=500M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:=80 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log

值與Xmn的關系公式
上面介紹了promontion faild產生的原因是EDEN空間不足的情況下將EDEN與From survivor中的存活對象存入To survivor區時,To survivor區的空間不足,再次晉升到old gen區,而old gen區內存也不夠的情況下產生了promontion faild從而導致full gc.那可以推斷出:eden+from survivor < old gen區剩餘內存時,不會出現promontion faild的情況,即:
(Xmx-Xmn)*(1-/100)>=(Xmn-Xmn/(SurvivorRatior+2)) 進而推斷出:
<=((Xmx-Xmn)-(Xmn-Xmn/(SurvivorRatior+2)))/(Xmx-Xmn)*100
例如:
當xmx=128 xmn=36 SurvivorRatior=1時 <=((128.0-36)-(36-36/(1+2)))/(128-36)*100 =73.913
當xmx=128 xmn=24 SurvivorRatior=1時 <=((128.0-24)-(24-24/(1+2)))/(128-24)*100=84.615…
當xmx=3000 xmn=600 SurvivorRatior=1時 <=((3000.0-600)-(600-600/(1+2)))/(3000-600)*100=83.33
低於70% 需要調整xmn或SurvivorRatior值。

⑧ eclipse 啟動參數設置

Eclipse 啟動參數設置

直接右鍵eclipse的快捷方式,在"目標"中填入下行
D:\eclipse\eclipse.exe -debug options -vm javaw.exe -nl en_US -clean -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -XX:MaxNewSize=32M -XX:NewSize=32M -Xms128m -Xmx256m
參數註解:
【-debug options -vm javaw.exe】 顯示JVM當前內存使用量(註:詳見下方《讓你的eclipse也能顯示JVM當前內存使用量》)
【-nl】後面跟的是語言:英語 en_US 簡體中文 zh_CN
【-clean 】是當啟動Eclipse IDE時清空緩沖,一般來說在沒有更新插件的情況下,去掉這個參數啟動速度更快。
【-vmargs】使用JRE的參數,後面就是JRE的參數了:
【-Xverify:none】去掉JAR包數據驗證,一般來說只有在網路環境下才需要驗證JAR包數據的有效性。本地的話可以不用驗證。
【-XX:+UseParallelGC】使用並行垃圾收集機制,據說這個GC演算法比較快。具體不清楚。
【-XX:PermSize=20M -XX:MaxNewSize=32M -XX:NewSize=32M】這三個就是設置詳細的緩沖數據了。詳情看Java官方網站的介紹吧。
【-Xms128m】Java虛擬機初始化內存容量。
【-Xmx256m】Java虛擬機最大使用內存容量,根據你所使用機器的內容大小設置,只要不超過最大內存容量就好。
《讓你的eclipse也能顯示JVM當前內存使用量》
1、在eclipse根目錄下建立一個文件,文件名options,文件內容:org.eclipse.ui/perf/showHeapStatus=true
2、用這條命令啟動Eclipse:D:\eclipse\eclipse.exe -debug options -vm javaw.exe
或者直接右鍵eclipse的快捷方式,在"目標"中填入這行。
3、啟動eclipse,就可以看到下面的狀態欄會顯示當前JVM內存使用量,另外還可以強制進行垃圾收集。
修改那個ini文件是要注意,修改文件之前一定要注意備份。
加啟動參數和在ini中寫是一樣的,都是啟動的配置。
eclipse對於jre的載入順序:首先執行 -vm 參數;如果沒有 -vm 參數,則查找 eclipse\jre 子目錄;如果沒有找到,eclipse最後才查找在系統中注冊的jre。

⑨ java main函數怎麼設置參數

elipse配置方式為:
Run As-->Run Configurations->Arguments->Program arguments 中輸入 參數值即可,空格隔開。
其它開發工具也類似

閱讀全文

與java設置啟動參數設置相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:61
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1003
命令zpa 瀏覽:285
python編譯器小程序 瀏覽:944
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:593
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:339
程序員項目經理的年終總結範文 瀏覽:929
內衣的加密設計用來幹嘛的 瀏覽:432
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:399
夢幻端游長安地圖互通源碼 瀏覽:745
電腦本地文件如何上傳伺服器 瀏覽:313