java VM argument_java之program arguments与VM arguments
program arguments 中的值作為 args[] 的參數(shù)傳入的,而 VM Arguments 是設(shè)置的虛擬機的屬性。
program arguments 是要傳給你的應(yīng)用程序的,它通過主函數(shù)中的 args 來傳值。 VM arguments是系統(tǒng)的屬性,要傳給 java 虛擬機的。
如圖:是eclipse中的參數(shù)傳遞
我們隨便寫個程序Test1
public class Test1 {
public static void main(String[] args){//空格分隔
System. out .println( "Program arguments" );
for ( String str:args ){
System. out .println( str );
}
System. out .println( "VM arguments" );
String syspro1 = "java.util.logging.config.file" ;
System. out .println( System.getProperty (syspro1) );
String syspro2 = "cc" ;
System. out .println( System.getProperty (syspro2) );
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
結(jié)果如下:
注意program arguments的參數(shù)是用空格分隔的;比如spring boot框架在后面添加–spring.port=8080 這樣的話就會覆蓋到文件中的該參數(shù),這是spring boot自己設(shè)定后的功能,我們也可以自定義一些功能來添加;
這種方法的本質(zhì)無非是java命令的延伸,如下:
命令:java Test1 aa bb
program arguments到此結(jié)束;
接下來我們討論 VM arguments
例如: VM arguments:java -vm arguments class
vm arguments 可參考:http://blog.csdn.net/kimylrong/article/details/17339263
Java啟動命令可選項(options)大致可分為標(biāo)準(zhǔn)(-D等)和非標(biāo)準(zhǔn)(-X、-XX)兩種,非標(biāo)準(zhǔn)的可選項不保證在所有平臺上都實現(xiàn),并且未來的版本中可能會被修改且不告知,總之就是不穩(wěn)定(Unstable)。不過有的非標(biāo)準(zhǔn)可選項還是非常有用的,后面我們會談到。
—————— 下面列出了 JAVA 自身運行需要的一些必要參數(shù)
-D set a system property(設(shè)置系統(tǒng)屬性) 可通過語句System.getProperties().list(System.out);查看有哪些參數(shù)可以設(shè)置。 可設(shè)置的參數(shù):
– listing properties –
java.runtime.name=Java(TM) 2 Runtime Environment, Stand…
sun.boot.library.path=C:\Program\Files\Java\jre1.5.0_08\bin
java.vm.version=1.5.0_08-b03
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\wapSearchLogService
java.runtime.version=1.5.0_08-b03
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jre1.5.0_08\lib…
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Windows XP
sun.jnu.encoding=GBK
java.library.path=C:\Program Files\Java\jre1.5.0_08\bin…
java.specification.name=Java Platform API Specification
sun.management.compiler=HotSpot Client
Compiler os.version=5.1
user.home=C:\Documents and
Settings\Administrator
user.timezone=Asia/Shanghai
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.5
user.name=Administrator
java.class.path=D:\wapSearchLogService\bin;D:\wapSear…
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files\Java\jre1.5.0_08
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.5.0_08
java.ext.dirs=C:\Program
Files\Java\jre1.5.0_08\lib…
sun.boot.class.path=C:\Program
Files\Java\jre1.5.0_08\lib…
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport…
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64
這樣就可以在java中通過System.getProperty(“propertyName”) 獲得環(huán)境變量設(shè)置的值
常見配置匯總
1.堆設(shè)置
-Xms :初始堆大小
-Xmx :最大堆大小
-XX:NewSize=n :設(shè)置年輕代大小
-XX:NewRatio=n: 設(shè)置年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個年輕代年老代和的1/4
-XX:SurvivorRatio=n :年輕代中Eden區(qū)與兩個Survivor區(qū)的比值。注意Survivor區(qū)有兩個。如:3,表示Eden:Survivor=3:2,一個Survivor區(qū)占整個年輕代的1/5
-XX:MaxPermSize=n :設(shè)置持久代大小
2.收集器設(shè)置
-XX:+UseSerialGC :設(shè)置串行收集器
-XX:+UseParallelGC :設(shè)置并行收集器
-XX:+UseParalledlOldGC :設(shè)置并行年老代收集器
-XX:+UseConcMarkSweepGC :設(shè)置并發(fā)收集器
3.垃圾回收統(tǒng)計信息
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
4.并行收集器設(shè)置
-XX:ParallelGCThreads=n :設(shè)置并行收集器收集時使用的CPU數(shù)。并行收集線程數(shù)。
-XX:MaxGCPauseMillis=n :設(shè)置并行收集最大暫停時間
-XX:GCTimeRatio=n :設(shè)置垃圾回收時間占程序運行時間的百分比。公式為1/(1+n)
5.并發(fā)收集器設(shè)置
-XX:+CMSIncrementalMode :設(shè)置為增量模式。適用于單CPU情況。
-XX:ParallelGCThreads=n :設(shè)置并發(fā)收集器年輕代收集方式為并行收集時,使用的CPU數(shù)。并行收集線程數(shù)。
6.一般環(huán)境下的默認(rèn)參數(shù):
1:jre中的Default VM Arguments: -Xms256M -Xmx640M -XX:PermSize=256m
-XX:MaxPermSize=768m 2:Tomcat的Optional Java VM Arguments: -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m 3:eclipse.ini中: -vmargs-Xms256m-Xmx512m
附:
GC詳解:http://blog.csdn.net/mr__fang/article/details/47723767
原文鏈接:https://blog.csdn.net/u013289746/article/details/78086351
總結(jié)
以上是生活随笔為你收集整理的java VM argument_java之program arguments与VM arguments的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 更新Linux系统(更新linux)
- 下一篇: 斗鱼安卓版本(斗鱼安卓版)