为什么Groovy不会尊重我的命令行开关?

时间:2014-10-08 15:37:02

标签: groovy null command-line-arguments executable-jar

我有以下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为空而不是“ Earl ”?

1 个答案:

答案 0 :(得分:3)

java可执行文件将主类/ Jar之后的所有内容视为main方法的参数。试试java -Dname=Earl -jar myapp.jar。 (除非Jar是一个胖Jar或它的清单类路径指向Groovy Jar,否则你也必须使用-cp)传递它。