运行简单applet的ClassNotFoundException

时间:2014-02-06 03:27:42

标签: java applet

我为学校写了http://pastebin.com/EwShF3YS;这是一个简单的Java applet,带有一对GUI眼睛,可以在光标移动时观察它。它在编译器(NetBeans 7.4)中运行良好,但在我的生活中,我很难理解为什么它不能在浏览器中运行。我得到了ClassNotFound异常。我一直在做的所有阅读都表明不需要.class文件,因为它是一个applet,浏览器应该在运行时生成一个。如果需要一个类,那么NetBeans如何在没有类的情况下运行它?

HTML文件存储在与.java相同的目录中 - 这很简单:

<html>
<head>
<title>WatchMe</title>
</head>
<body>
<applet code="WatchMe.class" width="300" height="200">
</applet>
</body>
</html>

我尝试了各种不同的东西,不同的浏览器,设置类路径;在不同的电脑上打开它。结果始终相同,ClassNotFound异常。我一直在进行的互联网研究产生了大多数非生产性的答案,例如一个完全重装PC的人。我注意到如果我完全符合WatchMe.class的路径,我会得到一个挂起/空白的浏览器页面。我完全没有想法,所以欢迎任何建议或建议。

2 个答案:

答案 0 :(得分:0)

您需要将已编译的WatchMe.class放在与HTML文件相同的目录中。拥有.java文件是不够的,浏览器不会为你编译任何东西。它将使用JRE运行.class文件。

答案 1 :(得分:0)

  

我一直在做的所有阅读都表明不需要.class文件,因为它是一个applet,浏览器应该在运行时生成一个。

这是不正确的。您必须提供“.class”文件或包含“.class”文件的JAR文件,以供浏览器获取。

Web浏览器的Java插件无法编译Java代码。如果你找到了一个告诉你的资源,那就错了。 (我有兴趣看到这个错误信息的具体例子!你能发帖子吗?)

您的混淆可能源于阅读Javascript上的材料并认为它适用于Java。别!!它们是非常不同的语言......一方面的材料不适用于另一方。


好的,为什么你的例子不起作用?

很难说,但最可能的原因是:

  • 您在“code”属性中使用了错误的名称或路径,
  • 您需要一个“codebase”属性,以允许浏览器将“.class”名称映射到正确的URL以进行下载,
  • 您的代码依赖于其他类(不在浏览器插件的类库中)或
  • 这是字节码版本问题;即您已使用比浏览器支持的更高版本的Java编译您的applet。

尝试在浏览器的Java控制台中查找完整的错误消息和异常的堆栈跟踪。

尝试查看服务器端HTTP日志,以查看客户端尝试获取的文件...以及服务器的响应。