程序参数和VM参数之间有什么区别?

时间:2011-04-22 02:54:03

标签: java eclipse

我发现只有当我将-Dcontext=web放入VM参数时,才能通过System.getproperty方法读取该值。我想知道这两者之间的区别是什么?

5 个答案:

答案 0 :(得分:28)

程序参数是传递给程序的参数,可在主方法的args数组中找到

 public static void main(String[] args)

VM参数传递给虚拟机,旨在指示VM执行某些操作。您可以执行诸如控制堆大小等操作。如您所述,您可以通过调用System.getProperty()来访问它们。

答案 1 :(得分:1)

程序args可通过main(String args [])方法

的args []获得

答案 2 :(得分:1)

程序参数进入main()方法:

public static void main(String[] args) // here

答案 3 :(得分:1)

enter image description here

程序参数:程序参数是传递给应用程序的参数,可以通过main方法的“args”String数组参数访问。

VM参数: VM参数是JVM执行程序所需的环境或系统参数。 VM参数从系统属性中读取,如下面的java指令。

  

System.getProperty(sysProp1)

代码段:

public static void main(String[] args) {
            String sysProp1 = "sysProp1";
            System.out.println("\t System Propery Name:" + sysProp1 + ", Value:" + System.getProperty(sysProp1));
            System.out.println("\t Program Variable Test Propery Name:" + args[0]);
        }

有两种方法可以传递这两个参数值。

来自Eclipse:

命令行参数:

 java -cp projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar com.first.jobs.IndexJob testing -DsysProp1=testing

答案 4 :(得分:0)

  • 程序参数 - 我们通常传递给程序的参数。可以使用main方法中的“args”字符串数组访问此类型参数。
  • VM参数 - 传递给Java解释器的参数。