2014-10-08 50 views
1

我有以下的Groovy類:Groovy爲什麼不尊重我的命令行開關?

class MyApp { 
    public static void main(String[] args) { 
     String name = System.getProperty("name") 
     println "My name is ${name}." 
    } 
} 

當我包起來作爲一個可執行的JAR文件,然後運行它(java -jar myapp.jar -Dname=Earl),這裏是輸出我得到:

我的名字是空。

爲什麼name空,而不是 「厄爾」?

回答

3

java可執行文件將主類/ Jar之後的所有內容視爲main方法的參數。嘗試java -Dname=Earl -jar myapp.jar。 (除非Jar是一個胖Jar或者其清單類路徑指向Groovy Jar,否則您必須通過使用-cp)。