Java 不兼容的魔法值1008813135

Java 不兼容的魔法值1008813135,java,applet,compatibility,Java,Applet,Compatibility,我正在编写一个Java小程序并将其嵌入到网页中。 它曾经在不同的浏览器中运行Mac和Windows,没有问题。 我在Mac上使用NetBeans构建小程序使用的.jar文件 出于某种原因,我决定在Windows的NetBeans上加载该项目-当从任何浏览器访问网页时,我在Windows计算机上开始出现以下错误: java.lang.ClassFormatError: Incompatible magic value 1008813135 in class file 我担心一定是我决定在Wind

我正在编写一个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。看来Mac版的Java不再生成这个文件头了?这是怎么回事?我没有进行任何更新或任何操作。

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

感谢上帝,问题解决了

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

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

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

#DefaultType应用程序/x-httpd-php

修正了这个问题


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


1008813135是拉丁文编码的
,很可能是
的开头。不兼容的幻数是html文件的前四个字节,其中包含一些错误消息,可能是找不到该文件的消息


当我在applet标记的codebase元素中没有考虑大小写敏感性时,我遇到了这种现象。在Windows上运行得很好,但我使用的internet服务器运行的是UNIX,其中文件名区分大小写很重要。对代码和代码库元素中的所有文件和目录名进行大小写解决了问题。

如果您使用的是Spring security或某种自定义Servlet过滤器,请确保存档或代码库位置处于“permitAll”访问中。在我的案例中,这是一个问题。我面临着同样的问题。在我的案例中,原因是小程序使用的所有依赖项库都没有签名,并且小程序无法找到它们

因此,我在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'

我还签署了所有的罐子


希望这在您的情况下能起作用。

我刚刚单击了maven->update project->include snapshot release in my spring boot,它起了作用。

是的,我发现了关于此错误的其他报告,似乎与无效的主机配置有关,可能与
.jar
文件有关。@warax我首先尝试直接加载applet jar文件。如果这样做有效,那么您可能有一个不正确的Jar文件路径。查看服务器日志以查看试图从哪个URL检索Jar文件。1008813135是整数吗?或者十六进制?前4个字节被读入整数并转换,看看我们是否无法访问服务器,我们如何获得完整的错误文本来了解问题所在?我认为Java缓存应该是罪魁祸首。.jar支持或apache配置没有多大意义,因为我是从Mac上的~/Sites文件夹为我的网页提供服务的-我没有做任何更改。感谢您的回答,但是这个问题很久以前就被回答和接受了。。。你应该试着回答最近的问题