eclipse中Program arguments和VM arguments的区别

来源:互联网 发布:centos 6.5 配置yum 编辑:程序博客网 时间:2024/06/05 06:56

在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时可以使用-D参数来设置运行时的系统变量,同样,在Eclipse中运行java程序时我们怎么设置该系统变量呢?

另外,如果我们的程序需要输入运行参数,在Eclipse中如何配置?具体步骤为:

在要运行的类上右键点击Run As–>Run Configurations…
在弹出界面中点击Arguments

这里写图片描述

/**  * 通过Run Configurations(Debug Configurations)->Arguments里填写program arguments和VM arguments  * 参数之间用空格隔开,其本质类似于执行命令  * java -DvmParam1=vmParam1 -DvmParam2=vmParam2 TestArgsInputParam 1 2   * program arguments存储在String[] args里  * VM arguments设置的是虚拟机的属性,要传给java虚拟机的。KV形式存储的,通过System.getProperty("PropertyName")获取  */  public class TestArgsInputParam {      public static void main(String[] args) throws Exception {        System.out.println("program arguments:");        if (args.length == 0) {              System.out.println("您调用main方法时没有指定任何参数!");              return;          }          System.out.println("您调用main方法时指定的参数包括:");          for (int i = 0; i < args.length; i++) {              System.out.println("参数" + (i + 1) + "的值为:" + args[i]);          }        System.out.println("VM arguments:");        String vmParam1 = "vmParam1";        String vmParam2 = "vmParam2";        System.out.println("\tName:" + vmParam1 + ",Value:" + System.getProperty(vmParam1));        System.out.println("\tName:" + vmParam2 + ",Value:" + System.getProperty(vmParam2));        System.out.println("Default VM arguments:");        System.out.println("java_vendor:" + System.getProperty("java.vendor"));        System.out.println("java_vendor_url:" + System.getProperty("java.vendor.url"));        System.out.println("java_home:" + System.getProperty("java.home"));        System.out.println("java_class_version:" + System.getProperty("java.class.version"));        System.out.println("java_class_path:" + System.getProperty("java.class.path"));    }}  

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

1.其中Program arguments栏里可以输入程序运行所需的参数,也就是main方法的参数,如果参数为多个,则用空格分开。

2.VM arguments里接收的是系统变量参数,系统变量输入格式为:-Dargname=argvalue,同样,多个参数之间用空格隔开。另外如果参数值中间有空格,则用引号括起来