2010-05-11 81 views
0

我創建使用JApplet的一個簡單的小程序,一切似乎很好地工作,但只要我創造我在我的小程序名爲ChatUser用戶定義的類的對象,我得到這個錯誤: -類未發現異常在JApplet的

SEVERE: java.lang.ClassNotFoundException: applet.ChatUser 
     at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:713) 
     at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:247) 
     at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) 
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) 
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) 
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 
     at misc.ChatClient.run(ChatClient.java:43) 

任何想法可能是錯的?它只發生在我創建任何用戶定義類的對象時。我是否需要設置一些安全設置或其他?請幫助:(

回答

1

它只是意味着所提到的類是在小應用程序的運行時類路徑缺失。

你一定要明白,在一個完全不同的環境Web服務器上運行,其中,即客戶機小程序運行?客戶端需要先下載所需的庫。這個類應該包含在applet的主要JAR文件或任何applet的archive參數引用的庫。您可以指定多個JAR的逗號分隔。

<param name="archive" value="applet.jar,library1.jar,library2.jar"> 

這指示客戶端要下載哪個JAR礦石運行小程序。

+0

我Balusc,謝謝,但我已經在小應用程序標記存檔集。這是我的小程序標記: - 和我在ChatUser類錯誤,即使jar文件包含在小程序包 – TCM 2010-05-11 03:04:54

+0

文件ChatUser都在兩側的類完全一樣?即你在兩個不同的項目中創建了相同的包/名稱,但沒有兩個不同的類?無論如何,它是否包含一個'私有靜態最終的long serialVersionUID'?順便說一句,安全問題會拋出一個'AccessControlException'。 *現在是就寢時間。我明天會看到這個。* – BalusC 2010-05-11 03:11:40

+0

不,我創建了一個類庫項目並添加了所有包和類。然後添加它是對我的Web應用程序(JSF)項目的引用。當我運行這個時,我得到這個錯誤。順便說一句,如果我通過點擊文件並運行(在Netbeans中)直接在我的類庫項目中運行applet,我仍然會出現此錯誤。雅,明天你明白。晚安:) – TCM 2010-05-11 03:18:35

0

它看起來像一個類路徑問題,你開始applet的方式。

如果使用NetBeans運行文件啓動小程序,Netbeans可能會將您的項目類路徑作爲Applet的類路徑,而不是您在Applet的HTML頁中指定的內容。 正如您所看到的類加載器是com.sun.enterprise.loader.ASURLClassLoader,它不是Applets使用的標準類加載器(URLClassLoader)。 使用瀏覽器或appletviewer或jnlp(Java webstart)運行applet。