2016-03-06 2 views
0

Я использую JavaGuard запутать один из моих .jar файлов и получил эту ошибку:Ошибка Weird JavaGuard?

# ERROR - corrupt class file: me/project/main/Main.class java.io.IOException: Incompatible version number for class file format: 52/0 at net.sf.javaguard.classfile.ClassFile.read(ClassFile.java:160) at net.sf.javaguard.classfile.ClassFile.create(ClassFile.java:116) at net.sf.javaguard.GuardDB.addClasses(GuardDB.java:415) at net.sf.javaguard.GuardDB.startObfuscate(GuardDB.java:274) 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

Похоже, вы компилируете свой код с помощью Java 8, а затем используете версию javaguard, которая не понимает форматы классов Java 8. Формат : 52 в сообщении исключения является версией формата класса, что указывает на Java 8. Эта запись из Википедии перечислены возможные значения и соответствующие версии Java https://en.wikipedia.org/wiki/Java_class_file

Это не удивительно - выпуск последней javaguard, как представляется, 1.0 beta в 2002 году. Возможно, вам понадобится использовать другой инструмент

+0

Я обнаружил, что что-то не так с самим .jar. Я попытался использовать JD-GUI, чтобы декомпилировать его, и каждый класс отобразил сообщение «// INTERNAL ERROR //» Я удалил все ошибки и предупреждения в своем коде, но когда я экспортирую .jar, классы не декомпилируются правильно. Что-то не так с моим методом экспорта? Я использую ссылки .jars. –

+0

Может быть, jd-gui не поддерживает Java 8? – kiwiron

0

Для устройства «// INTERNAL ERROR //» вы можете использовать декомпилятор Luyten; Он получит ваш код.

Для "# ERROR - поврежденного файла класса: me/project/main/Main.class java.io.IOException: Несовместимый номер версии для формата файла класса: 52/0 при ошибке, вы можете использовать более новая версия proguard.

У меня была эта проблема (с использованием плагина proguard maven), и она была разрешена с использованием 5.3.2.