![](/img/trans.png)
[英]java.lang.ClassNotFoundException when loading a class from a jar file
[英]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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.