我正在整合Apple Reporter.jar来下载我的应用程序销售报告,但它抱怨我的论点太少或太多。
Too few or too many parameters specified for the method. Call ApplicationName.getHelp for a list of valid methods and their parameters.
当我调用Sales.getHelp
时,它告诉我参数应该是:
Usage: java -jar Reporter.jar p=[properties file] m=["Normal"|"Robot.XML"] a=[account number] Sales.[command] [arguments]
where commands include:
getHelp: Returns this help message. No arguments.
getStatus: Returns status of Sales and Trends application. No arguments.
getAccounts: Returns list of available accounts. No arguments.
getVendors: Returns list of available vendor numbers. No arguments.
getReport: Downloads a report. Arguments: Vendor Number, Report Type, Report Subtype, DateType, Date.
因此,如果我想执行Sales.getReport
命令,似乎我需要以下参数:
java -jar Reporter.jar p=[properties file] m=["Normal"|"Robot.XML"] a=[account number] Sales.getReport Vendor_Number Report_Type Report_Subtype DateType Date
这是我使用的命令(使用我通过报告器获得的真实帐号和供应商编号):
java -jar Reporter.jar p=Reporter.properties m="Normal" a="XXXXXX" Sales.getReport YYYYYYY Sales Summary Daily 20170130
据我所知,所有这些都正确匹配:
1) java -jar Reporter.jar | java -jar Reporter.jar
2) p=[properties file] | p=Reporter.properties
3) m=["Normal"|"Robot.XML"] | m="Normal"
4) a=[account number] | a="XXXXXX"
5) Sales.getReport | Sales.getReport
6) Vendor_Number | YYYYYYY
7) Report_Type | Sales
8) Report_Subtype | Summary
9) DateType | Daily
10) Date | 20170130
我尝试在末尾添加一个额外的asdf
,看看它是否想要一个参数,但它给了我相同的信息。然后我尝试删除参数,它一直给我相同的错误消息,直到我删除Sales.getReport
。
我做错了什么还是他们的错误消息完全错误/没有帮助?
好吧,无论苹果工程师创造了什么记者.jar都需要被解雇。
问题是我需要在命令行参数之间放置逗号。就像命令行使用历史上绝对没有其他命令行用法一样。似乎 Sales.getReport
之后的所有内容都被代码吸进去,粉碎成一个字符串,然后在逗号上拆分,然后它才检查参数。
因为我甚至尝试仅将"YYYYYYY Sales Summary Daily 20170130"
作为单个字符串发送,以测试我的假设,即它想要一个命令行参数,但这不起作用。
这是最终对我有用的命令:
java -jar Reporter.jar p=Reporter.properties m="Normal" a="XXXXXX" Sales.getReport YYYYY, Sales, Summary, Daily, 20170129
我不知道那些苹果工程师在设计这个时在想什么,但他们应该被解雇。我希望苹果工程师是最好的,但这是业余的,对所有标准的命令行实践一无所知。</rant>