0

このパラメーターを Proguard に送信しようとすると、次の例外がスローされます。

java -Xms128M -Xmx256M -jar "../../../tools/proguard/proguard.jar" @game_specific.pro -libraryjars "C:/Program Files/Java/jdk1.5.0_22/jre/lib/rt .jar" エラー: クラスパス区切り文字 ';' が必要です 引数番号3の「Files/Java/jdk1.5.0_22/jre/lib/rt.jar」の前

これはファイル名にスペースが含まれているためです。" と ' を使用してさまざまな回避策を試しましたが、パスで progra~1 を使用した場合にのみ機能します。 Javaへのさまざまなパスを持つ別のコンピューター。

私は何を間違っていますか?

4

1 に答える 1

1

便宜上、ProGuard はシェルの引用符を使用して任意にグループ化されたコマンドライン引数を受け入れます。

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

シェルは引数をグループ化し、引用符をゴブリングします。その結果、スペースを含むファイル名は、別の引用符などでもう一度引用符で囲む必要があります。

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

この二重引用符の問題は、構成ファイルのオプションには存在しません。

この問題は、ProGuard のマニュアルに記載されています。

于 2011-02-18T19:49:27.580 に答える