如果要通过发送参数来启动VM,则应发送VM参数而不是程序参数。
程序参数是传递给您的应用程序的参数,可通过main方法的“
args”字符串数组参数进行访问。VM参数是诸如传递给JavaSW解释器的系统属性之类的参数。上面的Debug配置基本上等效于:
java -DsysProp1=sp1 -DsysProp2=sp2 test.ArgsTest pro1 pro2 pro3
VM参数位于对Java解释程序(即’java’)的调用之后,在Java类之前。程序参数放在Java类之后。
考虑一个程序ArgsTest.java:
package test;import java.io.IOException; public class ArgsTest { public static void main(String[] args) throws IOException { System.out.println("Program Arguments:"); for (String arg : args) { System.out.println("t" + arg); } System.out.println("System Properties from VM Arguments"); String sysProp1 = "sysProp1"; System.out.println("tName:" + sysProp1 + ", Value:" + System.getProperty(sysProp1)); String sysProp2 = "sysProp2"; System.out.println("tName:" + sysProp2 + ", Value:" + System.getProperty(sysProp2)); } }如果输入为
java -DsysProp1=sp1 -DsysProp2=sp2 test.ArgsTest pro1 pro2 pro3
在命令行中,在项目bin文件夹中将显示以下结果:
Program Arguments: pro1 pro2 pro3System Properties from VM Arguments Name:sysProp1, Value:sp1 Name:sysProp2, Value:sp2



