在阅读Java man
页面时,我发现了-Dproperty=value
标志。通过传递此标志,它将创建一个值为value的系统属性。
我编写了一个测试Java代码:
class File{
public static void main(String[] args){
System.out.println("HOLA");
System.out.println(System.getProperty("blah"));
}
}
我使用
javac File.java
编译了相同的内容,然后使用命令java File -Dblah=blah
运行,但是我得到了以下输出。HOLA
null
然后我运行了 java -Dblah=blah File
,然后得到了预期的输出:
HOLA
blah
问题是:这是一个bug还是故意的行为。看起来像个bug,因为在大多数程序中,命令行顺序并不重要。