繁体   English   中英

尝试从.jar文件加载applet时出现java.lang.ClassNotFoundException

[英]java.lang.ClassNotFoundException when trying to load applet from a .jar file

很抱歉这个问题,但是我是Java的新手。 我尝试搜索类似的问题,但确实找到了一些答案,但在我的情况下却没有任何效果,因此,方法如下:

我正在尝试在网页上加载Java小程序。 应该从.jar文件(UCFApplet.jar)加载applet,但是无论如何我都无法加载它。

这是该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页面上可以看到,它是最新的build。 在所有浏览器(IE 9,FF,Chrome)上都会发生这种情况。

我怀疑这可能与无法访问.jar文件有关,因为如果将html代码更改为虚拟名称(例如archive =“ thisFileDoesNotExist.jar”),则会出现相同的错误。 但是我真的不知道该怎么放置才能使它工作。

关于我会做错什么的任何想法吗?

感谢你并致以真诚的问候,

若奥·迈亚(Joao Maia)

您的描述符似乎是正确的,因此请尝试以下操作。

首先检查浏览器是否可以下载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

顺便说一句,您知道不赞成使用applet标签,而Opera和Chrome不支持applet标签吗? 要支持所有浏览器,您应该使用标记object

尝试在Java控制面板中打开跟踪。 然后,它将在以下路径中生成一个日志文件,该文件可能会有所帮助:

%USERPROFILE%\AppData\LocalLow\sun\java\Deployment\log

就我而言,我有一个错误仅在我打开跟踪时出现,并且仅显示为“ ClassNotFoundException”:

java.util.zip.ZipException: duplicate entry: META-INF/LICENSE.txt

小程序加载器拒绝jar,因为zip文件具有重复的文件条目。 奇怪的是appletviewer.exe能够很好地加载和运行此jar。

对于那些在公司代理后面运行的人。 根据Oracle ClassNotFoundException“如果代理设置不正确,将会看到一个常见错误”

Java的代理设置

请参阅: 如何为Java配置代理设置?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM