【发布时间】:2018-09-15 14:34:25
【问题描述】:
我需要运行一个程序,其中运行时参数以表单形式传递,
--argumentName=argumentVaue
我需要在如下所示的主函数中获取这些值,
public class TestArguments {
public static void main(String[] args) {
System.out.println(System.getProperty("argumentA"));
System.out.println(System.getProperty("argumentB"));
System.out.println(System.getProperty("argumentC"));
System.out.println(System.getProperty("argumentD"));
for(int i=0; i<args.length; i++) {
System.out.println("Argument " + i + " equals " + args[i]);
}
}
}
当我检查args 中的值时,我只得到一个大字符串,例如--argumentA=foo。我可以做一个 string.split("=") 将名称与值分开,但这似乎不是一种通过名称获取参数值的优雅方式。我认为System.getProperty("argumentName") 可以解决问题,但值始终是null。我正在通过像 java -cp "myProgram.jar" com.foo.bar.TestArguments --argumentA=a --argumentB=b --argumentC=c--argumentD=d 这样的 jar 运行我的程序。
【问题讨论】:
-
您可以使用专门设计的 API:commons.apache.org/proper/commons-cli。
标签: java arguments command-line-arguments