【问题标题】:Problem med space in path in Proguard parameter callProguard 参数调用中路径中的问题 med 空间
【发布时间】:2011-02-18 12:39:44
【问题描述】:

当我尝试将此参数传递给 Proguard 时,它会抛出此异常:

java -Xms128M -Xmx256M -jar "../../../tools/proguard/proguard.jar" @game_specific.pro -libraryjars "C:/Program Files/Java/jdk1.5.0_22/jre/库/rt.jar" 错误:期望类路径分隔符';'在参数编号 3 中的 'Files/Java/jdk1.5.0_22/jre/lib/rt.jar 之前

这是由于文件名中的空格,我知道的很多。我已经尝试过使用 " 和 ' 的各种变通方法,但唯一有效的是当我在路径中使用 progra~1 时。 这对我来说不是一个可行的解决方案,因为这个命令应该能够在许多具有各种 Java 路径的不同计算机上运行。

我做错了什么?

【问题讨论】:

    标签: proguard


    【解决方案1】:

    为方便起见,ProGuard 接受任意分组的命令行参数,使用 shell 引号,例如:

    java -jar proguard.jar "-keep public class * { public <methods>; }"
    

    shell 将参数分组并吞噬引号。因此,必须再次引用包含空格的文件名,例如用不同的引号:

    java -jar proguard.jar "-injars 'some input.jar'"
    

    配置文件中的选项不存在这种双引号问题。

    ProGuard manual 中提到了这个问题。

    【讨论】:

    • 究竟出了什么问题。文件名周围的引号起到了作用。
    猜你喜欢
    • 2015-12-10
    • 2018-01-05
    • 2015-01-25
    • 2021-12-31
    • 2013-02-03
    • 2018-03-25
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多