program arguments 中的值作为 args[] 的参数传入的,而 VM Arguments 是设置的虚拟机的属性。
program arguments 是要传给你的应用程序的,它通过主函数中的 args 来传值。 VM arguments是系统的属性,要传给 java 虚拟机的。

如图:是eclipse中的参数传递


我们随便写个程序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) );}
}

结果如下:

注意program arguments的参数是用空格分隔的;比如spring boot框架在后面添加–spring.port=8080 这样的话就会覆盖到文件中的该参数,这是spring boot自己设定后的功能,我们也可以自定义一些功能来添加;

这种方法的本质无非是java命令的延伸,如下:
命令:java Test1 aa bb
program arguments到此结束;
接下来我们讨论 VM arguments

例如: VM arguments:java -vm arguments class
vm arguments 可参考:http://blog.csdn.net/kimylrong/article/details/17339263
Java启动命令可选项(options)大致可分为标准(-D等)和非标准(-X、-XX)两种,非标准的可选项不保证在所有平台上都实现,并且未来的版本中可能会被修改且不告知,总之就是不稳定(Unstable)。不过有的非标准可选项还是非常有用的,后面我们会谈到。

—————— 下面列出了 JAVA 自身运行需要的一些必要参数

-D set a system property(设置系统属性) 可通过语句System.getProperties().list(System.out);查看有哪些参数可以设置。 可设置的参数:
– 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”) 获得环境变量设置的值

常见配置汇总

1.堆设置

-Xms :初始堆大小
-Xmx :最大堆大小
-XX:NewSize=n :设置年轻代大小
-XX:NewRatio=n: 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n :年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n :设置持久代大小

2.收集器设置

-XX:+UseSerialGC :设置串行收集器
-XX:+UseParallelGC :设置并行收集器
-XX:+UseParalledlOldGC :设置并行年老代收集器
-XX:+UseConcMarkSweepGC :设置并发收集器

3.垃圾回收统计信息

-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename

4.并行收集器设置

-XX:ParallelGCThreads=n :设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n :设置并行收集最大暂停时间
-XX:GCTimeRatio=n :设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

5.并发收集器设置

-XX:+CMSIncrementalMode :设置为增量模式。适用于单CPU情况。
-XX:ParallelGCThreads=n :设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

6.一般环境下的默认参数:

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

java之program arguments与VM arguments相关推荐

  1. java VM argument_java之program arguments与VM arguments

    program arguments 中的值作为 args[] 的参数传入的,而 VM Arguments 是设置的虚拟机的属性. program arguments 是要传给你的应用程序的,它通过主函 ...

  2. Eclipse中Program arguments和VM arguments的说明

    在运行程序的时候,我们一般可以进行run configuration的配置,就比如tomcat源码导入eclipse之后,我们可以发现其运行配置如下: 其中Program arguments配置的元素 ...

  3. idea java opts_idea为java程序添加启动参数(program arguments,vm arguments,Environment variable),并在程序中获取使用...

    # 一.问题描述 # ## 1. 开发环境 ## 1. idea2019 2. jdk1.8 3. win10 在实际的项目开发中我们经常需要为java程序添加一些启动参数(又叫java启动命令),比 ...

  4. idea程序参数program arguments,vm arguments,Environment variable

    Java启动命令可选项(options) 大致可分为标准和非标准两种,非标准的可选项不保证在所有平台上都实现,并且未来的版本中可能会被修改且不告知,是不稳定的(Unstable). 标准可选项(Sta ...

  5. Eclipse开发过程中个VM Arguments的设置

    1:jre中的Default VM Arguments: -Xms256M -Xmx640M -XX:PermSize=256m -XX:MaxPermSize=768m 2:Tomcat的Optio ...

  6. Myeclipse修改设置Default VM Arguments

    打开Windows-> Preferences 然后选择右侧菜单的Java->Installed JREs 点击右侧的jdk,然后点击"Edit"按钮 Default ...

  7. Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in

    使用jdk8的时候,出现了Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support wa ...

  8. 关于Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: 11043的解决办...

    Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: /tmp/hsperfdat ...

  9. 启动Kafka失败Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 107

    报错信息: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000,  107374 ...

最新文章

  1. TM1810-3, TM1810-2 LED恒流驱动IC
  2. sqlserver sql行专列_sqlserver----记录转载(行转列)、列转行、pivot、unpivot
  3. 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
  4. “天才”辈出的全国青少年科技大赛
  5. 通过系统回顾的方法来发展循证的管理知识*。
  6. 以太坊geth结构解析和源码分析
  7. 多线程对于共享变量访问带来的安全性问题
  8. IntelliJ IDEA for Mac 如何自定义快捷键_设置快捷键
  9. 天津市电子计算机职业学院,天津市电子计算机职业中等专业学校
  10. 机器学习入门必备的13张“小抄”(附下载)
  11. 在Apache服务器上安装SSL证书
  12. # 20175311 2018-2019-2 《Java程序设计》第2周学习总结
  13. blongsTo 用法
  14. Listener中应用spring管理的Bean
  15. 林子雨大数据软件安装和编程指南导航
  16. SQL基础系列(三)——分组查询
  17. html中多一条黑线,Word页面中上下各有一条黑线怎样去掉?
  18. python requests ssl 证书问题
  19. Nacos -- 集群部署
  20. pygame-KidsCanCode系列jumpy-part18-背景滚动

热门文章

  1. css3 animation 箭头向右滚动渐隐
  2. 【Qt】Connect/Disconnect
  3. java 设置窗体 无边框 关闭按钮_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?...
  4. QT disconnect
  5. 软件设计师_计算机网络——IP地址和子网掩码
  6. eNSP启动一直出#号的一种参考方法
  7. 数据结构实验——串的加密
  8. PowerDesigner 安装
  9. opengauss、GaussDB数据库安装-详细教程
  10. [NAS] Synology (群晖) DSM同步数据到阿里云盘