ProGuard Java 库路径

Chr*_*ith 1 java proguard

我有一个保存的 ProGuard 东西,在里面,我有这行:

-libraryjars /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar
Run Code Online (Sandbox Code Playgroud)

我在 Linux 和 Windows 上都使用这个配置文件。我有一个便携式硬盘驱动器,上面有这个文件和我得到的参考库,我可以使用../lib/aLibrary.jar. 有没有办法可以在两个平台上获取 rt.jar 的位置,这样我就不必更改 jar 的路径?

Eri*_*une 6

你可以用

-libraryjars <java.home>/lib/rt.jar
Run Code Online (Sandbox Code Playgroud)

ProGuard 会自动java.home为您替换 Java 系统属性。这当然假设您在每个平台上使用预期的 Java 7 JVM 运行 ProGuard。

您还可以指定自己的 java 系统属性,例如target.java.home

-libraryjars <target.java.home>/lib/rt.jar
Run Code Online (Sandbox Code Playgroud)

然后,您需要在运行 ProGuard 时在命令行上定义此属性:

java -Dtarget.java.home=/usr/lib/jvm/java-7-openjdk-amd64/jre -jar lib/proguard.jar .....
Run Code Online (Sandbox Code Playgroud)