不相容的魔法值1008813135

时间:2010-03-05 23:54:21

标签: java applet compatibility

我正在编写一个Java applet并将其嵌入到网页中。 它曾经在不同的浏览器中运行Mac和Windows而没有任何问题。 我在Mac上使用NetBeans来构建applet使用的.jar文件。

由于某种原因,我决定在Windows的NetBeans上加载项目 - 当从任何浏览器访问网页时,我开始在Windows机器上收到以下错误:

java.lang.ClassFormatError: Incompatible magic value 1008813135 in class file

由于担心我一直决定在Windows上打开导致此错误的项目 - 我尝试使用Mac的NetBeans进行构建 - 但错误仍然存​​在。

我在Mac上开始了一段时间的新项目并导入了现有的源代码:仍然是同样的问题。

我正在阅读有关此错误的一些内容,似乎预期的幻数是十六进制的0xCAFEBABE,即十进制的3405691582,而不是1008813135.所以看起来Mac的Java版本不再生成此文件头?锄头可以吗?我没有做任何更新或任何事情。

6 个答案:

答案 0 :(得分:59)

是的,0xCAFEBABE是Java文件通常的前4个字节。

拉丁语编码中的

1008813135 <!DO,这很可能是<!DOCTYPE...的开头。

因此可能是404 error或其他错误页面的开头。

答案 1 :(得分:6)

我没有遇到过这个问题,但谷歌搜索这个错误会产生几种可能的解决方案:

forum.sun.com - Java Applet Development - Incompatible magic value 1008813135 in class file MyApplet

  

感谢上帝,问题解决了。

     

它是Java缓存,所以解决方案转到Java控制面板,“常规”选项卡,然后在“Internet临时文件”下单击“设置”,然后单击“删除文件”。再次尝试使用applet。

"Incompatible magic value 1008813135" Error?

  

问题现在解决了:我发现我使用的网站主机根本不支持.jar文件。我使用我的ftp程序批量上传文件,并没有注意到它完全忽略了.jar文件。

Errors on java initialization

  

好吧,这是一个apache配置问题,从我的httpd.conf文件中删除了这一行:

     

# DefaultType application/x-httpd-php

     

修正了问题。

答案 2 :(得分:1)

如果您使用的是Spring安全性或某种自定义Servlet过滤器,请确保存档或代码库位置处于“permitAll”访问状态。这是我的案例中的问题

答案 3 :(得分:0)

不兼容的幻数是html文件的前四个字节,其中包含一些错误消息,可能是一条未找到该文件的消息。

当我在applet标记的codebase元素中没有考虑区分大小写时,我遇到了这种现象。事情在Windows上运行良好,但我使用的互联网服务器运行UNIX,其中文件名区分大小写非常重要。在代码和代码库元素中创建所有文件和目录名称的情况解决了这个问题。

答案 4 :(得分:0)

我遇到了同样的问题。我的案例中的原因是 Applet使用的所有依赖库都未签名,applet也无法找到它们

所以我已经在jsp文件中添加了所有依赖库和主applet,如下所示:

app.archive =&#39; /esense/resources/lib/Applet.jar,/esense/resources/lib/jasypt-1.7.jar,/ esense / resources / lib / mysql-connector-java -5.1.30.jar,/esense/resources/lib/runtime-api-1.0.jar' ;;

我还签了所有的罐子。

希望这可以适用于你的情况。

答案 5 :(得分:0)

我刚刚点击了maven-&gt;更新项目 - &gt;在我的春季启动中包含了快照发布,它确实有效。