奇怪的JavaGuard错误?

时间:2016-03-06 02:32:08

标签: java

我正在使用JavaGuard来混淆我的.jar个文件之一并收到此错误:

  

#ERROR - 损坏的类文件:me / project / main / Main.class java.io.IOException:类文件的版本号不兼容   格式:52/0在   net.sf.javaguard.classfile.ClassFile.read(ClassFile.java:160)at at   net.sf.javaguard.classfile.ClassFile.create(ClassFile.java:116)at at   net.sf.javaguard.GuardDB.addClasses(GuardDB.java:415)at   net.sf.javaguard.GuardDB.startObfuscate(GuardDB.java:274)at at   net.sf.javaguard.GuardDB.obfuscate(GuardDB.java:243)at   JavaGuard.obfuscate(JavaGuard.java:322)at   JavaGuard.start(JavaGuard.java:179)at   JavaGuard.main(JavaGuard.java:146)

我该怎么做才能解决这个问题?我的代码编译得很好,.jar导出没有错误。我的代码或.java文件没有问题。

2 个答案:

答案 0 :(得分:0)

看起来您正在使用Java 8编译代码,然后使用不了解Java 8类格式的javaguard版本。异常消息中的格式:52 是类格式版本,表示Java 8.此Wikipedia条目列出了可能的值和相应的Java版本https://en.wikipedia.org/wiki/Java_class_file

这并不奇怪 - 2002年的最后一个javaguard版本似乎是1.0测试版。您可能需要使用其他工具

答案 1 :(得分:0)

对于" //内部错误//"你可以使用Luyten反编译器的东西;它会得到你的代码。

对于" #ERROR - 损坏的类文件:me / project / main / Main.class java.io.IOException:类文件格式的版本号不兼容:52/0 at"错误,您可能想要使用较新版本的proguard。

我遇到了这个问题(使用proguard maven插件)并使用5.3.2解决了这个问题。