环境:JDK1.6   tomcat 7    
开发环境:myeclipse for spring 10需求:
  系统为B/S架构。框架为S2SH。
  需要采集地磅的数据,地磅采用串口发送数据。
  
  采用Applet小程序 到客户端执行数据采集 实时显示到客户端的页面上
  
问题:
  该Applet小程序在架构好的项目上部署。执行的时候就报异常
———————————————————异常信息———————————————————————————
basic: 错误:Incompatible magic value 218762506 in class file Test。
java.lang.ClassFormatError: Incompatible magic value 218762506 in class file Test
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
异常:java.lang.ClassFormatError: Incompatible magic value 218762506 in class file Test
Ignored exception: java.lang.ClassFormatError: Incompatible magic value 218762506 in class file Test
————————————————————————————————————————————————————我另外新建一个项目部署相同的这个Applet程序。运行正常没有问题。在百度,谷歌一天没找到什么好的解决办法。
有的说数jdk版本的问题。尝试在1.4-1.6的版本下编译和执行。问题仍在。有遇到这个问题的朋友吗??
有什么好的解决方案,请帮小弟。
谢谢 

解决方案 »

  1.   

    查看一下Test class文件的16進制值
    本來應該開頭的4字節即magic value是CAFEBABE,但現在卻變成了D0A0D0A(218762506)
    看看是什麽原因造成的,比較一下其它正常的class文件,開頭不是這樣的
      

  2.   

    魔数都错了,该是jar包或者class损坏了
      

  3.   


    WinHex 查看class文件的16进制值
    开头4字节 就是 CA FE BA BE 
    正常的啊
      

  4.   

    那这个估计就是loadClass时正常,到defineClass中或后出了问题,因此jvm报错多半是和用的jdk有关
    at sun.plugin2.applet.Plugin2ClassLoader.loadClassat java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)但看你又都试过,确认真正用到的都是试过的吗?还有最好注意编译和运行用的jdk尽量一致,免去一个可能出错的因素。
      

  5.   


    还是不知道是什么问题
    我在家是是win2003 jdk6 tomcat7 正常
    在工作的电脑上 win7 jdk6 tomcat7 就出这个错误
    但是换成tomcat6就正常了 
    。。
    感谢你的帮助
      

  6.   

    win2003和win7中的jdk6不是一模一样的jdk吧,应该是适应各自系统的独立版本,这里就会有区别。
    还有确定运行时的堆栈所用的JRE是用的哪里的,什么版本
    好像是浏览器的java plugin,类似于这种:
    Java Plug-in 1.6.0_22
    Using JRE version 1.6.0_22-b04 Java HotSpot(TM) Server VM
    User home directory = /home/andreas
    ----------------------------------------------------
    c:   clear console window
    f:   finalize objects on finalization queue
    g:   garbage collect
    h:   display this help message
    l:   dump classloader list
    m:   print memory usage
    o:   trigger logging
    q:   hide console
    r:   reload policy configuration
    s:   dump system and deployment properties
    t:   dump thread list
    v:   dump thread stack
    x:   clear classloader cache
    0-5: set trace level to <n>
    ----------------------------------------------------
      

  7.   

    要保证客户端的浏览器的JDK和开发的JDK版本一致