为什么System.getProperty在eclipse + Java 8中不起作用?

时间:2014-06-28 03:12:46

标签: java eclipse java-8

所以在我在eclipse中的运行配置中,我选择了我的主要类Main.java,在“程序参数”选项卡中我放了testArg=Sample

在我的应用程序的main方法中,我做了一个: System.out.println on:

  1. args[0]
  2. System.getProperty("testArg")
  3. args[0}的结果是testArg=Sample,但System.getProperty("testArg")得到的结果是null

    发生了什么事?我使用的是Java 8和Eclipse Kepler。

    注:

    当我输入“VM Arguments”框testArg=Sample时,我得到并且错误:

      

    错误:无法找到或加载主类testArg = Sample`

2 个答案:

答案 0 :(得分:4)

System.getProperty()获取通常使用-D指定的VM参数,这些参数通常用于配置VM。你的论点是一个程序参数'。

请参阅:What's the difference between program arguments and VM arguments?

正在使用eclipse(取决于版本);您应该能够在参数选项卡下的同一位置为运行配置指定VM参数和程序参数:

  • 程序参数 - 以args []的形式传递给主方法
  • VM参数 - 可通过System.getProperty()
  • 获得

enter image description here

答案 1 :(得分:1)

java -h

Usage: java [-options] class [args...]
          (to execute a class)
  or  java [-options] -jar jarfile [args...]
          (to execute a jar file)
...
   -D<name>=<value>
             set a system property

所以,你想要

java -DtestArg=Sample -cp MY_CLASSPATH mypackage.MyMain

或者,在eclipse中 -

转到“首选项 - &gt; Java - &gt;已安装的JRE”。在那里,您可以设置JRE安装并更新JVM参数。