ProGuard输出无法运行

时间:2016-06-15 16:00:34

标签: java proguard obfuscation

我已经制作了一个没有问题的jar。 ProGuard处理也很成功:

C:\Users\alexk>C:\proguard5.2.1\bin\proguard.bat @M:\JGetRealV_alexk\JVAUtilities\config.pro
ProGuard, version 5.2.1
Reading program jar [M:\JGetRealV_alexk\JVAUtilities\jgetrealv.jar]
Reading library jar [M:\JGetRealV_alexk\JVAUtilities\JGetRealVConsoleApp\slf4j-api-1.7.21.jar]
Reading library jar [M:\JGetRealV_alexk\JVAUtilities\JGetRealVConsoleApp\slf4j-jdk14-1.7.21.jar]
Reading library jar [C:\Program Files\Java\jdk1.7.0_79\jre\lib\rt.jar]
Preparing output jar [M:\JGetRealV_alexk\JVAUtilities\jgetrealv_out.jar]
Copying resources from program jar [M:\JGetRealV_alexk\JVAUtilities\jgetrealv.jar]

但是当我尝试运行输出jar时,我收到一个错误:

C:\Users\alexk>java -jar M:\JGetRealV_alexk\JVAUtilities\jgetrealv_out.jar
Error: Could not find or load main class org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

请帮忙!

1 个答案:

答案 0 :(得分:1)

通过在config.pro中添加以下行来解决问题:

-keep class org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader {
    public static void main(java.lang.String[]);
}

非常感谢Eric Lafortune(https://sourceforge.net/u/lafortune/),他已经发送了这个解决方案。