日期:2014-05-17  浏览次数:20666 次

jsp中调用applet
求解答。。。在jsp中调用applet总是出现:
   
  “ ClassFormatError

  Imcompatible magic value 1885430635 in class file Mouse”
 
  如何解决这个问题?请高手解答。。。或者能不能示范一下,在jsp中如何调用applet?
 
  拜托了!!~~~~(>_<)~~~~

------解决方案--------------------
呵呵,看来你是新手级别的,给你一个例子:
<applet name="graphView"
code= "你的class"
archive = "引用相关的jar包"
width = "950px"
height = "395px"
hspace = "0"
vspace = "0"
align = "middle"
></applet>
一定要结贴哦!
------解决方案--------------------
从你的描述看,应该是你的Applet文件有问题(ClassFormatError),要重新正确生成class,并且保证编译时的java版本与执行时的JRE版本兼容

再给你一个具体的例子,1楼的是正确的,也可以这样
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="460" height="350">

<param name="code" value="ex.MyApplet.class" >
<param name="archive" value="EX.jar">
<param name="codebase" value=".">

</object>

archive 的值表示,你的Applet以及其它用到的class在什么地方,如果你的Applet由多个class组成的话,可以将它们生成一个jar来提供
------解决方案--------------------
这个class文件是你的主程序入口的地方,假如你的程序有很多类,那么你要把这个程序工程导出为jar包。
用applet呈现的时候,class文件就是这个主程序编译后形成的,所以archive赋值格式为class路径+class名称+(后缀).class
------解决方案--------------------
抱歉,上面写的是code赋值的格式,archive赋值格式是这样的。举个例子:现在我们在自己的工程WebRoot目录下新建一个folder:applets。然后添加自己的applet类所在的jar包(比如yourapplet.jar)到这个目录下。假如有个在WebRoot下有个jsp,要呈现这个applet,那么archive赋值格式为这样:archive=<%=basePath%>/applets/yourapplet.jar。如果这个applet类引用了其他的jar包,同样要写在这个archive后面,用逗号隔开。

其中basePath应该熟悉吧,它是这样获取的:<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>