Groovy为什么不尊重我的命令行开关?
问题描述:
我有以下的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
空,而不是 “厄尔”?
答
java
可执行文件将主类/ Jar之后的所有内容视为main
方法的参数。尝试java -Dname=Earl -jar myapp.jar
。 (除非Jar是一个胖Jar或者其清单类路径指向Groovy Jar,否则您必须通过使用-cp
)。