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) );

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

结果如下:

注意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

原文链接:https://blog.csdn.net/u013289746/article/details/78086351

java VM argument_java之program arguments与VM arguments相关推荐

  1. java之program arguments与VM arguments

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

  2. Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit

    问题背景: 1.在Kylin里跑一个较大的cube,其中这个cube是一个大表事实表,关联两张维度表,在第三步: Extract Fact Table Distinct 报错,查看Mapreduce的 ...

  3. vm 安装jdk1.8_JDK 13:VM.events已添加到jcmd

    vm 安装jdk1.8 CSR( 兼容性和规范审查 ) JDK-8224601 ["提供VM.events诊断命令"]从JDK 13 Early Access Build #24 ...

  4. Specified VM install not found: type Standard VM, name jdk1.6_ 的疑问

    在ant项目中运行build.xml时,会提示错误Specified VM install not found: type Standard VM, name jdk1.6_...类似的错误信息,网上 ...

  5. build.xml编译报错Specified VM install not found: type Standard VM, name jdk1.7.0_45

    build.xml编译打包时报错: 解决方法: build.xml  --  右键 --  Run As -- External Tools Configuration 在这个页面的顶端就会看到有红叉 ...

  6. Specified VM install not found: type Standard VM, name jdk1.7

    网上抄袭来抄袭去,都说是将"workspace /.metadat a/.plugins/org.eclipse.debug.core/.launches/"下的文件都删除掉. 的 ...

  7. Specified VM install not found: type Standard VM, name jre7

    报错信息:Specified VM install not found: type Standard VM, name jre7 解决方案: 方案一: 网上抄袭来抄袭去,都说是将"works ...

  8. django解决错误Reverse for 'show' with arguments '()' and keyword arguments '{}' not found. 办法

    保留个犯罪现场吧: 出现的错误 NoReverseMatch at / Reverse for 'show' with arguments '()' and keyword arguments '{} ...

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

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

最新文章

  1. win8计算机上工具选项在哪,Win8.1在开始菜单中找不到“便笺”工具如何恢复
  2. 基本套接字总结(@function)
  3. 毛坯房装修需要哪些材料
  4. Jenkins安装入门
  5. 打开方式中选择默认方式无反映_「Windows」得看,更改文件的默认应用,告别“打开方式”...
  6. SQL Server中的递归CTE和外键引用
  7. 【问题解决】解决创建Android模拟器时提示“No system images installed for this target“的问题
  8. Cadence OrCAD Capture TCL/TK脚本实例
  9. Ipad使用技巧之——打印机
  10. outlook qr码在哪里_QR和条码扫描仪app下载|QR和条码扫描仪安卓版下载_v10.00.3
  11. 高大上的PPT表格都是怎样制作完成的
  12. 4G/5G多链路聚合路由器对不同运营商聚合适用的工作场景
  13. chrome浏览器的跨域问题解决
  14. 通过Grafana进行监控报警
  15. 银行业务总揽之-银行对公业务
  16. C++学习(一八一)android的NDK、SDK版本的对应关系
  17. 第13课:构建神经网络模型的实用建议
  18. 计算机软件实习每日学习打卡(5)20201218
  19. 全球与中国椎弓根螺钉固定市场深度研究分析报告
  20. 在Unity中实现体素化

热门文章

  1. jdk 11 模块系统_JDK 9:模块系统状态的重点
  2. java 编译 器 ide_Java 8发布一年后,IDE和编译器尚未完全就绪
  3. ceph-rest-api_快速检查REST API是否有效的方法-从清单文件中获取详细信息
  4. javafx透明边框_JavaFX技巧6:使用透明颜色
  5. JMetro 5.2版发布
  6. php cdi_教程:编写自己的CDI扩展
  7. Zuul 2 –样本过滤器
  8. maven jacoco_使用JaCoCo Maven插件为单元和集成测试创建代码覆盖率报告
  9. 构建openjdk镜像_在Windows上构建OpenJDK
  10. Java 9和Project Jigsaw如何破坏您的代码