4

我正在集成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

这是我使用的命令(使用我通过 Reporter 获得的真实帐号和供应商编号):

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的参数,看看它是否需要更多参数,但它给了我相同的信息。然后我尝试删除 params ,它一直给我相同的错误消息,直到我删除Sales.getReport.

我做错了什么还是他们的错误信息完全错误/没有帮助?

4

1 回答 1

4

好的,无论 Apple 工程师创建 Reporter.jar 都需要被解雇。

问题是我需要将 COMMAS 放在我的命令行参数之间。就像在命令行使用历史中绝对没有其他命令行使用一样。似乎之后的所有内容都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

我不知道那些苹果工程师在设计这个时在想什么,但他们应该被解雇。我希望 Apple 工程师成为最好的工程师,但这是业余的,并且对所有标准命令行实践一无所知。</rant>

于 2017-01-30T20:52:17.733 回答