我使用JApplet创建了一个简单的Applet,一切似乎都运行正常,但是一旦我在applet中创建了一个名为ChatUser的用户定义类的对象,我就会收到此错误: -
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)
知道什么是错的吗?它只发生在我创建任何用户定义类的对象时。我需要设置一些安全设置吗?请帮忙:(
答案 0 :(得分:1)
这只是意味着applet的运行时类路径中缺少所提到的类。
您是否意识到applet运行的环境与Web服务器运行的环境完全不同,即客户端计算机?客户端需要首先下载所需的库。该类应包含在applet的主JAR文件中或applet的archive
参数中引用的任何库中。您可以指定多个JAR的逗号分隔。
<param name="archive" value="applet.jar,library1.jar,library2.jar">
这指示客户端在运行applet之前下载哪个JAR。
答案 1 :(得分:0)
它看起来像是一个类路径问题,就像你启动applet一样。
如果使用NetBeans运行文件启动applet,Netbeans可能会将您的项目类路径作为Applet的类路径,而不是您在Applet的HTML页面中指定的内容。 如您所见,类加载器是com.sun.enterprise.loader.ASURLClassLoader,它不是Applet使用的标准类加载器(URLClassLoader)。 使用浏览器或appletviewer或jnlp(Java webstart)运行您的applet。