Вопрос по java – java.lang.ClassFormatError: Несовместимое магическое значение 218774561

6

Привет всем, я делаю свой первый апплет для Java сегодня. Я использовал субдомен на сервере, и я не знаю, что делать, потому что я получаю эту действительно странную ошибку.

У меня есть мой кувшин на сервере и все, но каждый раз, когда я пытаюсь загрузить апплет, это происходит.

java.lang.ClassFormatError: Incompatible magic value 218774561 in class file Evolution/EvolutionApplet

После исследования выясняется, что несовместимое магическое значение означает, что что-то было повреждено в .jar

Вот сайтhttp://dementedgames.site88.net/Main.html JAR-файл называется Evolution, если вам нужен HTML-код, который находится на сайте.

Изменить: апплет должен быть запущен из Evolution.EvolutionApplet, а не Evolution.Evolution

Отличный вопрос Показывает результаты исследований и ссылки на неудачный пример. Andrew Thompson
Как вы создаете свою банку? Chetter Hummin

Ваш Ответ

3   ответа
1

http://dementedgames.site88.net/Evolution.jar

Update

КажетсяEvolution.Evolution класс не апплет! Запустите его из командной строки, используя:

java -jar Evolution.jar

Создает рамку (с очень «ретро» внешним видом)! Таким образом, забудьте эту ерунду апплет, иlaunch the frame from a link using Java Web Start.

Old Answer

OTOH это теперь бросаетClassNotFoundException это (после осмотра банки) заставляет меня думать, что это должно быть:

<html>
<head>
<title>Evolution</title>
</head>
<body bgcolor="#000000" text="#906060">
<center>
<applet code="Evolution.Evolution" archive="Evolution.jar" width="800" height="600">
</applet>
</center>
</body>
</html>

Есть два изменения вcode атрибут стоит отметить.

The .class extension was removed. A minor matter, adding it is tolerated, but not correct. The Applet removed from the class name.
14

магическая ценность допустимого Java-класса0xCAFEBABE, который является шестнадцатеричным значением3405691582, Это представлено первыми 4 байтами файла. Но вы получаете218774561 который в свою очередь обозначает символы ASCIICR, LF, < а также! (CRLF - это новая строка). Чтобы увидеть это сами, запустите этот фрагмент кода:

ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(magic);
System.out.println(new String(b.array()));

Это в сочетании с апплетом, обслуживаемым веб-сайтом, предполагает, что это начало<!DOCTYPE> что, в свою очередь, предполагает, что это HTML-документ.

Итак, просьбаEvolution.jar по-видимомуactually вернул HTML-документ. Вы сможете увидеть его самостоятельно, когда измените текущий URI запроса в адресной строке браузера, чтобы он указывал на URL апплета (например, измените/page.html в конце URL к/Evolution.jar). Тогда вы увидите, какой браузерactually извлекается при попытке загрузить апплет. Возможно, это простой документ об ошибке HTTP 404.

Чтобы это исправить, просто убедитесь, что URL вarchive Атрибут правильный. Это относительно текущего URL запроса, как вы видите в адресной строке браузера.

Попробуйте скачать Evolution, она отлично работает me me
0

проверить эту ссылку Тема: Несовместимое магическое значение 218774561 Ошибка в апплете

Похоже, что кодовая база и / или атрибут кода тэга вашего апплета должны указывать правильно.

Похожие вопросы