【问题标题】:Incompatible magic value 1008813135不兼容的魔法值 1008813135
【发布时间】:2016-06-11 04:09:13
【问题描述】:

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

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

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

担心一定是我决定在 Windows 上打开导致此错误的项目 - 我尝试从 Mac 的 NetBeans 构建 - 但错误仍然存​​在。

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

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

【问题讨论】:

    标签: java applet compatibility


    【解决方案1】:

    我刚刚点击了 maven->更新项目->在我的 spring boot 中包含快照版本,它工作了。

    【讨论】:

      【解决方案2】:

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

      我在applet标签的codebase元素中没有考虑大小写时遇到了这个现象。一切在 Windows 上运行良好,但我使用的 Internet 服务器运行的是 UNIX,其中文件名区分大小写很重要。在代码和代码库元素中设置所有文件和目录名称的大小写解决了这个问题。

      【讨论】:

      • 感谢您的回答,但这个问题很久以前就已被回答并接受...您应该尝试回答最近的问题
      【解决方案3】:

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

      所以我已经在 jsp 文件中添加了所有依赖库以及主小程序,如下所示:

      app.archive = '/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';

      我也签了所有的罐子。

      希望这可能适用于您的情况。

      【讨论】:

        【解决方案4】:

        如果您使用 Spring 安全性或某种自定义 Servlet 过滤器,请确保存档或代码库位置处于“permitAll”访问权限。这对我来说是个问题

        【讨论】:

          【解决方案5】:

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

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

          感谢上帝,问题解决了。

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

          "Incompatible magic value 1008813135" Error?

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

          Errors on java initialization

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

          # DefaultType application/x-httpd-php

          解决了这个问题。

          【讨论】:

          • 我认为应该归咎于 Java 缓存。 .jar 支持或 apache 配置没有多大意义,因为我从 Mac 上的 ~/Sites 文件夹中提供我的网页 - 我什么也没做。
          【解决方案6】:

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

          1008813135 是拉丁编码的<!DO,很可能是<!DOCTYPE... 的开头。

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

          【讨论】:

          • 是的,我发现了有关此错误的其他报告,它似乎与无效的主机配置有关,可能与 .jar 文件有关。
          • @Warlax 我首先尝试直接加载小程序 jar 文件。如果这可行,那么您的 Jar 文件的路径可能不正确。查看服务器日志以查看试图从哪个 URL 检索 Jar 文件。
          • 1008813135 是整数吗?还是十六进制?
          • 如果我们无法访问服务器,如何获取完整的错误文本以查看问题所在?
          猜你喜欢
          • 2013-12-21
          • 1970-01-01
          • 1970-01-01
          • 2022-01-20
          • 2012-05-06
          • 2011-09-13
          • 2020-07-09
          相关资源
          最近更新 更多