Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

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 очень строги о плохом формате класса, java.lang.ClassFormatError бросается VM, когда эти плохие файлы класса загружаются.

Некоторыми типичными проблемами в некоторых более старых файлах класса является следующий (отметьте, что этот список не является исчерпывающим):

Разрешение

Чтобы позволить некоторым из апплетов с плохими файлами класса работать в платформе Java, Плагин Java содержит преобразователь байт-кода, чтобы преобразовать некоторые из плохих файлов класса к хорошим. В настоящий момент только плохие файлы класса со следующими проблемами могут быть преобразованы:

К сожалению, преобразователь байт-кода не может преобразовать следующие проблемы, которые все еще приведут к a ClassFormatError:

Можно разрешить эти проблемы, просто перекомпилировав Ваши классы Java с javac компилятор от JDK. Если Вы хотите использовать сторонний obfuscator, убедитесь, что использовали тот, который производит файлы класса, которые уважают надлежащий формат файла класса.

Соответствующая информация

       Ни один.


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами