【问题标题】:java -jar <jarFile> arguments can run multiple jar files?java -jar <jarFile> 参数可以运行多个jar文件吗?
【发布时间】:2017-04-27 21:47:48
【问题描述】:

我尝试准备 bat 文件以使用 signapk.jar 签署 apk 文件 这个程序的语法是:

java -jar signapk.jar testkey.x509.pem testkey.pk8 <update.apk> <update_signed.apk>

我的脚本如下所示:

java -jar "%~dp0%\SignApk\signapk.jar" "%~dp0%\SignApk\testkey.x509.pem" "%~dp0%\SignApk\testkey.pk8" "%~dp0%\SignApk\%ApkName%.apk" "%~dp0%\SignApk\%ApkName%_sign.apk"

当我执行脚本时,我收到一条消息“无法访问 jarfile {update_signed.apk}”,java“认为”这也是一个 jar 文件并尝试运行它..

有人可以帮助我如何将参数传递给 jar 文件?

谢谢。

【问题讨论】:

    标签: batch-file jar apk


    【解决方案1】:

    Java 命令行的-jar 变体只处理单个 JAR 文件,因此您的错误消息与此无关。

    您的错误消息很可能是由 signapk 应用程序创建的:您应该尝试直接命令(没有批处理包装器,没有参数变量,尤其是路径中没有特殊字符或空格或参数或相对命名 - 执行首先 cd 进入 SignApk 目录)。

    如果可行,您可以向后工作以查找转义失败的地方。

    顺便说一句:如果this是工具,你还需要指定一个签名命令:

    java -jar signapk.jar -c sign.pem -k sign.p8 sign your.apk
    

    【讨论】:

    • jar 文件路径总是-jar 选项之后的第一个参数吗?是否所有下一个参数都传递给 jar 应用程序?
    • 是的,语法是java [-options] -jar jarfile [args...]
    • 您的解决方案有效,我刚刚删除了完整路径 %~dp0%\SignApk 并改用 cd
    • 相对路径有很多可能的问题(取决于应用程序的编写方式)。它可能不期望输入名称或类似名称的路径。但原则上你的方法很好,java程序应该支持它(或者至少更好地处理错误)。但它独立于 java 启动器和 -jar 选项。
    猜你喜欢
    • 2014-05-22
    • 2011-07-02
    • 2011-06-03
    • 2012-06-07
    • 2010-10-06
    • 2013-04-23
    • 2016-01-06
    • 2013-02-24
    • 2023-03-08
    相关资源
    最近更新 更多