【问题标题】:Applet exception: java.lang.ClassNotFoundException小程序异常:java.lang.ClassNotFoundException
【发布时间】:2014-04-24 00:13:42
【问题描述】:

我有一个文件夹,里面有两个文件; java .class 文件和 .html 文件。在我的 html 文件中,我将 .class 文件称为小程序,但它在其发布的网站上显示一个错误,说它找不到 .class 文件。这让我感到困惑,因为它们在同一个目录中,我三重检查了拼写错误。

这是我的 .html 文件...

<html>

<head>
<title>Applet</title>
</head>

<body>
Program<br />
<applet code="testing.class" width="300" height="300"/>
</body>

</html>

这是我的 .class 文件...

import java.awt.Color;
import java.awt.Graphics;


public class testing extends java.applet.Applet{

    public void init(){

    }

    public void paint(Graphics g){
        g.drawOval(0,0,250,100);
        g.setColor(Color.RED);
        g.drawString("My Applet",10,50);
    }

}

我的 .class 文件是“testing.class”,我的 html 文件是“testingpage.html”

这里是完整的错误

load: class testing.class not found.
java.lang.ClassNotFoundException: testing.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
    at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: testing.class
load: class testing.class not found.
java.lang.ClassNotFoundException: testing.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
    at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: testing.class

【问题讨论】:

  • @MarkByers 这很可能是打字时的失误,因为他事先将其称为.html 文件。
  • 是的,我刚刚编辑了我的帖子。看起来很奇怪,因为在我问之前我一直在弄乱它,忘了把它改回来
  • 是的,我刚刚修复了混淆;)
  • 代码属性不应附加.classapplet 元素从未打算自封闭。你能把 HTML 和 class 文件放在某个 URL 上,这样我们就可以看到它失败了吗?

标签: java html applet


【解决方案1】:

applet 标签应该是:

<applet code=testing.class width="300" height="300" />

注意code 属性的变化。对比relevant Java Tutorial中列出的示例代码:

<applet code=Applet1.class width="200" height="200">
Your browser does not support the <code>applet</code> tag.
</applet> 

以下内容对我有用。

http://puu.sh/PebS

TestingApplet.java

import java.applet.Applet;

import java.awt.Color;
import java.awt.Graphics;

public final class TestingApplet extends Applet {

  public void paint(final Graphics g){
    g.drawOval(0, 0, 250, 100);
    g.setColor(Color.RED);
    g.drawString("My Applet", 10, 50);
  }
}

测试小程序.html

<html>
  <head>
    <title>Applet</title>
  </head>
  <body>
    Program <br />
    <applet code=TestingApplet.class width="300" height="300" />
  </body>
</html>

如果这不起作用,我有两个问题要问你......

  • 您是否将 Java 保存为 .java 文件并编译它以生成正确的 .class 文件?

  • 您是否确认您的浏览器没有缓存旧的不正确版本的 .html 文件?

  • 您的.class.html 文件在同一个目录中吗?

【讨论】:

  • @user1500134 尝试在 code 属性值周围不加引号。
  • 对我来说工作正常;见this screenshot。 Java 代码为here,HTML 为here。确保您的浏览器没有缓存旧的 HTML 文件。
  • 您是否将 Java 保存为 .java 文件并编译它以生成正确的 .class 文件?您是否确认您的浏览器没有缓存旧的不正确版本的 HTML 文件?
  • 嗯,我关闭了浏览器并重新加载了页面,但仍然无法正常工作...我当前的代码看起来与您的相同(除了文件名)所以 idk...我'会继续调查
  • 我编译了 .java 并进入了我的 Eclipse 工作区并从“bin”文件夹中获取了 .class 版本
【解决方案2】:

我很确定您没有打开正确的 HTML 文件。 使用您的文件浏览器(我猜是 Finder ;))并在 Netbeans 项目目录中查找该文件。它应该在 /build/classes/.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 2019-10-18
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多