我的主要课程中有两个输入参数,例如:
public static void main(String[] args) throws IOException, JSONException, ParseException {
DataFromES df = new DataFromES();
String year = "";
String[] month = {""};
for (String m : month) {
df.receiveData(year,m);
}
System.out.println("Excel Generated");
}
我已经为我的项目生成了jar
。但是,我非常不确定如何在jar
执行时将值传递给CMD
。我已经知道如何将参数传递给jar,但后来不清楚如何将值传递给上面两个Strings
。
答案 0 :(得分:2)
在main()方法中,您需要声明2个变量:
public static void main(String[] args) {
String year = args[0];
String month = args[1];
.... your treatment ...
}
所以,将年份作为第一个参数,将月份作为第二个参数;)
答案 1 :(得分:1)
您可以使用java
命令将参数传递给args,如下所示:
java -cp jar-name.jar complete-class-name "2016" "08"
你的代码就像这样:
String year = args[0];
String month = args[1];
答案 2 :(得分:1)
为避免重新发明轮子和错误,您应该考虑使用像Character Code Tables for TM printers这样的库,它会为您正确地解析命令。
-y
然后,您可以在一年中使用--year
或-m
提供论据,并在月份的情况下使用--month
或public static void main(final String[] args) {
if (args.length < 2)
throw new IllegalStateException("Not enough arguments");
String year = args[0];
String[] months = new String[args.length - 1];
System.arraycopy(args, 1, months, 0, months.length);
...
}
。如果出现解析错误,也会打印用法。
如果你想手动完成(假设你的年份首先跟着几个月),那么你的代码就是:
{{1}}
但我们应该添加更多测试以确保参数总量正确且参数有效,这就是我建议使用库的原因。