我正在使用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
文件没有问题。
答案 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解决了这个问题。