-1

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

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

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

Java代码:-

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
4

3 回答 3

0

在标签中:

code="dk/certificate/demo/DemoApplet.class"
  • package dk.certificate.demo;?
  • dk/certificate/demo/DemoApplet.class?

顺便说一下JApplet,swing io AWT 是更好的解决方案。


也许在您的情况下,代码库位于(应该是)WEB-INF/classes 中,这通常是不应该的,因为 WEB-INF 文件不应通过 URL 访问。

事实上,.jar 通常是在一个单独的项目中创建并存放在 Web Contents 目录中。

于 2013-05-28T09:06:51.993 回答
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我目前看不到的类文件。

现在,根据我所解释的内容来修复您的代码应该很容易。

于 2013-05-28T09:51:27.137 回答
0

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

两种解决方案:-

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

  2. 我将类文件夹从AppletDemo\WebContent\WEB-INF\classes 移动到 AppletDemo\WebContent\classes

从 login.jsp 我通过以下方式调用小程序:-

    <!-- 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

于 2013-05-30T09:58:57.140 回答