大家好,我今天正在制作我的第一个 java 小程序。我一直在服务器上使用子域,但我不知道该怎么办,因为我收到了这个非常奇怪的错误。
我的 jar 和所有东西都在服务器中,但每次我尝试加载 Applet 时都会发生这种情况。
java.lang.ClassFormatError: Incompatible magic value 218774561 in class file Evolution/EvolutionApplet
根据研究,不兼容的魔法值似乎意味着 .jar 中的某些内容已损坏
这是网站http://dementedgames.site88.net/Main.html 如果您需要网站上的 html 代码,则 jars 名称为 Evolution。
编辑:小程序应该从 Evolution.EvolutionApplet 而不是 Evolution.Evolution 启动
最佳答案
有效 Java 类的 magic value 是 0xCAFEBABE
,它是 3405691582
的十六进制值。这由文件的前 4 个字节表示。但是您得到的 218774561
又代表 ASCII 字符 CR
、 LF
、 <
和 !
(CRLF 是换行符)。要亲自查看,请运行这段代码:
int magic = 218774561;
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(magic);
System.out.println(new String(b.array()));
这与网站提供的小程序相结合表明它是 <!DOCTYPE>
的开始,而 Evolution.jar
又表明它是一个 HTML 文档。
因此,对 /page.html
的请求显然实际上返回了一个 HTML 文档。当您将浏览器地址栏中的当前请求 URI 更改为指向小程序的 URL(例如,将 URL 末尾的 /Evolution.jar
更改为 archive
)时,您应该能够自己看到它。然后您将看到浏览器在尝试下载该小程序时实际上 检索到的内容。也许这是一个简单的 HTTP 404 错误文档。
要修复它,只需确保 ojit_code 属性中的 URL 是正确的。它与您在浏览器地址栏中看到的当前请求 URL 相关。
关于java.lang.ClassFormat错误: Incompatible magic value 218774561,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10327098/