很抱歉这个问题,但我是Java的新手。我试图寻找类似的问题,我确实找到了一些答案,但没有一个在我的情况下有效,所以在这里:
我正在尝试在网页上加载java applet。 applet应该从.jar文件(UCFApplet.jar)加载,但无论如何都无法加载它。
这是applet的html:
<applet id="UCFApplet" height="200" width="200"
code="com.fujitsu.test.applet.UCFApplet"
archive="UCFApplet.jar">
</applet>
jar文件位于服务器上,与尝试加载它的html文件位于同一文件夹中。在jar文件中,com / fujitsu / test / applet文件夹中有一个UCFApplet.class文件。
我在Java控制台上遇到的错误如下:
Java Plug-in 1.6.0_29
Using JRE version 1.6.0_29-b11 Java HotSpot(TM) Client VM
User home directory = C:\Users\PTMAIAJ
----------------------------------------------------
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>
----------------------------------------------------
load: class com.fujitsu.test.applet.UCFApplet not found.
java.lang.ClassNotFoundException: com.fujitsu.test.applet.UCFApplet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.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: com.fujitsu.test.applet.UCFApplet
正如您所看到的,我正在使用jre 1.6.0_29 build 11,这是我在Oracle页面上获得的最新版本。这种情况发生在所有浏览器上(IE 9,FF,Chrome)。
我怀疑它可能与无法访问.jar文件有关,因为如果我将html代码更改为虚拟名称,例如archive =“thisFileDoesNotExist.jar”,它会给我同样的错误。但我真的不知道该怎么做才能让它发挥作用。
关于我可能做错什么的任何想法?
谢谢你,最诚挚的问候,
Joao Maia
答案 0 :(得分:4)
您的描述符似乎是正确的,请尝试以下操作。
首先检查浏览器是否可以下载jar。在浏览器中键入jar文件的直接URL。例如,如果可以通过键入
来访问您的html http://localhost/myapp/mypage.html
型
http://localhost/myapp/UCFApplet.jar
如果你可以下载jar并且它与你的jar相同。
检查罐子本身。输入命令行
jar vft UCFApplet.jar
并查看输出。你应该能找到你的班级:
/com/fujitsu/test/applet/UCFApplet.class
BTW你知道applet标签已被弃用,Opera和Chrome不支持吗?要支持所有浏览器,您应使用标记object
答案 1 :(得分:3)
尝试在java控制面板中启用跟踪。然后它将在以下路径中生成一个可能有用的日志文件:
%USERPROFILE%\AppData\LocalLow\sun\java\Deployment\log
在我的情况下,我遇到了一个错误,只有在我打开跟踪时出现,并且只显示为“ClassNotFoundException”:
java.util.zip.ZipException: duplicate entry: META-INF/LICENSE.txt
applet加载程序拒绝了jar,因为zip文件有重复的文件条目。奇怪的是appletviewer.exe
能够加载并运行这个罐子。
答案 2 :(得分:0)
对于那些在公司代理服务器后面运行的人。根据Oracle ClassNotFoundException
是“如果代理设置不正确,则会出现常见错误”。