【问题标题】:What's the difference between program arguments and VM arguments?程序参数和虚拟机参数有什么区别?
【发布时间】:2021-08-18 09:39:43
【问题描述】:

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

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    程序参数是传递给您的程序的参数,在您的 main 方法的 args 数组中可用

     public static void main(String[] args)
    

    VM 参数 被传递给虚拟机,旨在指示 VM 做某事。您可以执行控制堆大小等操作。您的程序可以通过调用System.getProperty() 来访问它们。

    【讨论】:

    • 只是为-Djava.library.path=/path/to/folder/ 添加一个微妙的点。 System.loadLibrary() 无法链接本机库,尽管 System.getProperty("java.library.path") 返回您的本机库所在的 /path/to/folder/ 字符串。例如在 Eclipse IDE 中,您必须在 IDE 菜单设置中专门设置此文件夹位置的值。通过System.setProperty() 以编程方式设置它不起作用。
    【解决方案2】:

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

    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 -DsysProp1=testing123456 projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar 123
    

    为了更好的展示,多行

     java -cp 
          -DsysProp1=testing123456 
          projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar 
          123
    

    【讨论】:

    • 顺便说一句,VM Argument(s)jar 之前并使用 -DProgram Argument(s)jar 之后
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      程序参数可通过args []main(String args[]) 方法获得

      【讨论】:

        【解决方案5】:
        • 程序参数 - 我们通常传递给程序的参数。这种类型的参数可以在main方法中使用“args”字符串数组来访问。
        • VM 参数 - 传递给 Java 解释器的参数。

        【讨论】:

          猜你喜欢
          • 2010-09-14
          • 2016-04-16
          • 2020-05-25
          • 2018-09-30
          • 1970-01-01
          • 2015-06-24
          • 2020-01-16
          • 1970-01-01
          相关资源
          最近更新 更多