【问题标题】:java.lang.ClassFormatError: Incompatible magic value 218774561java.lang.ClassFormatError:不兼容的魔法值 218774561
【发布时间】:2012-05-06 19:30:08
【问题描述】:

大家好,我今天正在为 java 制作我的第一个小程序。我一直在服务器上使用子域,但我不知道该怎么办,因为我遇到了这个非常奇怪的错误。

我的 jar 和所有东西都在服务器中,但每次我尝试加载 Applet 时都会发生这种情况。

java.lang.ClassFormatError: 类文件 Evolution/EvolutionApplet 中的魔法值 218774561 不兼容

经研究发现,不兼容的魔法值意味着 .jar 中的某些内容已损坏

这里是网站http://dementedgames.site88.net/Main.html 如果您需要网站上的 html 代码,jar 名称是 Evolution。

编辑:小程序应该从 Evolution.EvolutionApplet 而不是 Evolution.Evolution 启动

【问题讨论】:

  • 你是如何创建你的 jar 的?
  • 好问题。显示研究工作,并链接到一个失败的例子。

标签: java class jar applet classformaterror


【解决方案1】:

有效 Java 类的magic value0xCAFEBABE,它是3405691582 的十六进制值。这由文件的前 4 个字节表示。但是你得到了218774561,它又代表ASCII字符CRLF<!(CRLF是换行符)。要自己查看,请运行以下代码:

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

结合网站提供的小程序表明它是<!DOCTYPE> 的开始,而<!DOCTYPE> 反过来又表明它是一个 HTML 文档。

所以,对Evolution.jar 的请求显然实际上返回了一个HTML 文档。当您将浏览器地址栏中的当前请求 URI 更改为指向小程序的 URL 时,您应该能够自己看到它(例如,将 URL 末尾的 /page.html 更改为 /Evolution.jar)。然后您将看到浏览器在尝试下载小程序时实际 检索到的内容。也许这是一个简单的 HTTP 404 错误文档。

要修复它,只需确保 archive 属性中的 URL 正确。它与您在浏览器地址栏中看到的当前请求 URL 相关。

【讨论】:

    【解决方案2】:

    上面的 BalusC 已经很好地解释了它。除此之外,您可以查看此链接 Thread: Incompatible magic value 218774561 error in applet

    看来你的小程序标签的代码库和/或代码属性需要正确指向。

    【讨论】:

      【解决方案3】:

      原来的问题现在似乎已经解决了。我可以从http://dementedgames.site88.net/Evolution.jar下载Jar

      更新

      看来Evolution.Evolution 类不是小程序!使用以下命令从命令行运行它:

      java -jar Evolution.jar
      

      制作一个框架(具有非常“复古”的外观)!因此,忘记这个小程序废话,并从使用Java Web Start 的链接启动框架。

      旧答案

      现在它抛出了一个ClassNotFoundException(在检查了 Jar 之后)让我认为它应该是:

      <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 属性有两个值得注意的变化。

      1. .class 扩展已被删除。小题大做,可以容忍,但不正确。
      2. 从类名中删除了Applet

      【讨论】:

        猜你喜欢
        • 2020-07-09
        • 2012-08-24
        • 2016-06-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 2011-09-13
        相关资源
        最近更新 更多