Spec-Zone .ru
спецификации, руководства, описания, API
|
Отметьте: Это руководство по развертыванию Java описывает функции, выпущенные до Java SE 6 обновлений 10 выпусков. См. Java Богатый документ Разработки и Развертывания Интернет-приложений для последней информации.
java.lang.ClassFormatError
Брошенный ClassLoader
Выполняя апплет в браузере, используя Sun Среда выполнения Java™ (JRE™), a java.lang.ClassFormatError
бросается ClassLoader
. Тот же самый апплет работает под Microsoft Virtual Machine (VM).
Эта ошибка вызывается байт-кодами, сгенерированными от старого JDK 1.0.2/1.1 компиляторы, или от стороннего obfuscator. В прошлом многие из этих компиляторов и obfuscators сгенерированный байт-код, который не приспосабливает Sun Спецификации JRE. Поскольку верификаторы в недавнем Java выпуски SE очень строги о плохом формате class, java.lang.ClassFormatError
бросается VM, когда эти плохие файлы class загружаются.
Некоторыми типичными проблемами в некоторых более старых файлах class является следующий (отметьте, что этот список не является исчерпывающим):
Чтобы позволить некоторым из апплетов с плохими файлами class работать в платформе Java, Плагин Java содержит преобразователь байт-кода, чтобы преобразовать некоторые из плохих файлов class к хорошим. В настоящий момент только плохие файлы class со следующими проблемами могут быть преобразованы:
К сожалению, преобразователь байт-кода не может преобразовать следующие проблемы, которые все еще приведут к a ClassFormatError
:
Можно разрешить эти проблемы, просто перекомпилировав Ваши классы Java с javac
компилятор от JDK. Если Вы хотите использовать сторонний obfuscator, убедитесь, что использовали тот, который производит файлы class, которые уважают надлежащий class - формат файла.
Ни один.