执行“HelloWorld”applet代码时出现ClassCastException

时间:2013-05-28 08:41:22

标签: java

我正在尝试运行简单的“Hello world”java applet程序。但是在执行applet时不会出现在浏览器中而是发生ClassNotFoundException。

这是我从浏览器访问它的方式: -

<applet width="500" height="50" codebase="http://localhost:13383/tuexample/" code="dk.certificate.demo.DemoApplet.class" >...applet..</applet>

JavaCode: -

import java.applet.Applet;
import java.awt.Graphics;
public class DemoApplet extends Applet
{
    private static final long serialVersionUID = 1L;

    @Override
    public void paint(Graphics g)
    {
        g.drawString("Welcome in Java Applet.",40,20);
    }
}

异常日志: -

Java Plug-in 10.21.2.11
Using JRE version 1.7.0_21-b11 Java HotSpot(TM) Client VM
User home directory = C:\Users\rahil_khan
----------------------------------------------------
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>
----------------------------------------------------
28-May-2013 14:20:51 <INFO> thread applet-dk.pbs.applet.bootstrap.BootApplet-1 - stop
28-May-2013 14:20:51 <INFO> thread applet-dk.pbs.applet.bootstrap.BootApplet-1 -  
destroy

3 个答案:

答案 0 :(得分:0)

在标签中:

code="dk/certificate/demo/DemoApplet.class"
  • package dk.certificate.demo;
  • DK /证书/演示/ DemoApplet.class?

顺便提一下JApplet,摇摆i.o. AWT,是更好的解决方案。


也许在你的情况下,代码库驻留在(应该是)WEB-INF / classes中,这通常是不可能的,因为URL不能访问WEB-INF文件。

实际上,通常在单独的项目中创建.jar并将其存放在Web Contents目录中。

答案 1 :(得分:0)

让我最后回答这个问题:

您将获得ClassNotFoundException,因为似乎在您提供的配置中找不到Applet类。

您的代码执行此操作:它正试图在DemoApplet.class

内的包dk.certificate.demo内找到localhost:13383/tuexample/

因此,如果我们将localhost:13383/tuexample/视为您的根 webapp 目录,名为xyz,那么您可能的文件结构应如下所示:

XYZ/dk/certificate/demo/DemoApplet.class显然似乎并非如此。

另外请确保您的班级文件中有package dk.certificate.demo,我目前看不到。

现在,应该很容易根据我的解释修复你的代码。

答案 2 :(得分:0)

@RaviTrivedi和@JoopEggen感谢您的支持我能够解决问题。

两种解决方案: -

  1. DemoApplet.jar: - 我创建了applet代码的jar( DemoApplet.jar )( DemoApplet.java )和
    将其放在 AppletDemo \ WebContent \ lib 文件夹中。

  2. 我移动了类文件夹     来自 AppletDemo \ WebContent \ WEB-INF \ classes     到 AppletDemo \ WebContent \ classes

  3. 从login.jsp我以下列方式调用applet: -

        <!-- DemoApplet.jar -->
    <applet 
        width="500" 
        height="50" 
        codebase="http://localhost:8080/AppletDemo" 
        archive="lib/demoApplet.jar"
        code=dk.certificate.demo.DemoApplet.class >...applet..</applet>
    
         <!-- classes -->
     <applet 
        width="500" 
        height="50" 
        codebase="http://localhost:8080/AppletDemo/classes"
        code=dk.certificate.demo.DemoApplet.class >...class...applet..</applet>
    

    它有两种方式。 非常感谢。 :d