所以在我在eclipse中的运行配置中,我选择了我的主要类Main.java
,在“程序参数”选项卡中我放了testArg=Sample
。
在我的应用程序的main
方法中,我做了一个:
System.out.println
on:
args[0]
System.getProperty("testArg")
args[0
}的结果是testArg=Sample
,但System.getProperty("testArg")
得到的结果是null
。
发生了什么事?我使用的是Java 8和Eclipse Kepler。
注:
当我输入“VM Arguments”框testArg=Sample
时,我得到并且错误:
错误:无法找到或加载主类testArg = Sample`
答案 0 :(得分:4)
System.getProperty()获取通常使用-D指定的VM参数,这些参数通常用于配置VM。你的论点是一个程序参数'。
请参阅:What's the difference between program arguments and VM arguments?
正在使用eclipse(取决于版本);您应该能够在参数选项卡下的同一位置为运行配置指定VM参数和程序参数:
答案 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参数。