gpt4 book ai didi

Java Applet 部署、ClassNotFoundException(初级类)

转载 作者:行者123 更新时间:2023-12-01 05:55:52 25 4
gpt4 key购买 nike

这让我陷入困境。我已经检查并重新检查了拼写和路径。我尝试了几乎所有路径组合,包括相对路径、绝对路径和完整 http 路径。尝试加载 Java 小程序时,我继续收到以下错误:

java.lang.ClassNotFoundException: AppletClient.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: AppletClient.class

用于加载小程序的 HTML:

<applet width="100" height="100" archive="applet/myapplet.jar, applet/applet_dependency.jar" code="AppletClient.class">
<param value="blahblah" name="username">
<param value="false" name="codebase_lookup">
</applet>

该小程序位于当前页面路径的相对目录“applet”中。我已经解压了 jar 文件,可以看到 AppletClient.class。另外,在项目的源代码中,它是这样拼写的(外壳和所有)。我尝试过带/不带参数。我更改了小程序包含标记中存档 jar 的名称,只是为了看看是否会因错误文件名而收到不同的错误(相同的错误)。

我已在 jar 上手动执行 GET,以确保服务器正在响应请求(确实如此)。

我尝试过使用和不使用代码库标签以及所有不同种类的路径(开始在这些路径上出现严重的“魔数(Magic Number)”错误)。

我知道,当依赖项无法加载时,有时会弹出此错误,因此它可能会产生误导,但所有依赖项都存在、已说明,并且可以通过手动 GET 获取。

在每次尝试之间,我总是清除 FireFox 中的缓存。这些问题在 IE8 和 Chrome 中也会重现。

根据浏览器中的 Java 控制台,我正在运行 Java 插件 1.6.0_20。这是来 self 开发小程序的同一台机器,它通过 Eclipse 运行良好。

最后,我启动了 Fiddler2,并且在任何地方都没有看到对 jar 文件的单个请求 主机站点是从我的 Visual Studio 调试器运行的,因此它在本地主机上运行。但我在 Fiddler 上看到了对所有其他资源的请求。只是...没有 jar 。任何地方。我清除了日志,清除了浏览器缓存,并执行了 ctrl-R 刷新。而且 Fiddler 日志上仍然没有任何 Jar 请求。

一旦所有 Fiddler Activity 减慢,我什至在页面加载后对小程序标记进行了延迟写入(使用 JS)。该元素被写入文档(我可以看到 100x100 Java 错误窗口),但 Fiddler 上没有显示单个请求。

在我爬到角落里哭着休眠之前,有什么建议吗?

编辑:从 Java 控制台,如果我点击“l”(el) 到“转储类加载器列表”,我会看到如下所示的内容:

Live entry: key=http://localhost:55446/BaseWebSite/,http://localhost:55446/BaseWebSite/applet/myappliet.jar, http://localhost:55446/BaseWebSite/applet/applet_dependency.jar, refCount=1, threadGroup=sun.plugin2.applet.Applet2ThreadGroup[name=http://localhost:55446/BaseWebSite/-threadGroup,maxpri=4]

编辑2:小程序做了一些网络(Jabber/XMPP),所以我做了一个自签名证书来看看是否有帮助。收到有关自签名证书的提示 - 所以它正在读取某些内容 - 但仍然不起作用。而且它没有出现在Java缓存文件列表中......并且在Fiddler上仍然没有任何内容。

最佳答案

我认为 Java 插件有自己的缓存,您可能需要尝试清空。我运行的是 Windows,我在控制面板中找到它。在常规选项卡中,有一个“Internet 临时文件”部分,看看是否可以在那里找到某些内容?

在设置对话框中,我可以看到硬盘上缓存的 .jar 的位置,并且有几次我不得不手动删除它。

此外,请确保在控制台中按 x 清除类加载器缓存。

只是为了确保 AppletClient 确实位于默认类路径中,即不在包中?如果没有,您需要在标记中引用限定类名 (code="your.package.AppletClient")。

更新:

此时没有具体建议,除非您已经有,否则您可以做的是尝试另一种标记样式,看看是否有任何变化。这是我用过的东西:

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="380" height="260">
<param name="code" value="AppletClient" />
<param name="archive" value="applet/myapplet.jar,applet/applet_dependency.jar" />
<comment>
<embed
code="AppletClient.class"
type="application/x-java-applet;version=1.6"
archive="applet/myapplet.jar,applet/applet_dependency.jar"
width="380"
height="260">
<noembed>No Java Support.</noembed>
</embed>
</comment>
</object>

关于Java Applet 部署、ClassNotFoundException(初级类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com