java - 在 Web 上运行小程序时出现类未找到异常和 IO 异常

标签 java swing jsp applet

这是我的 jsp 文件正文标记。

<body>
   <jsp:plugin type="applet" code="SApplet.class" 
        codebase="C:\Program Files\apache-tomcat-6.0.18\webapps\testweb\WEB-INF\classes" 
        width="400" 
        height="300" jreversion="1.6"></jsp:plugin>


  </body>

我想在 Web 应用程序上运行我的小程序,但我收到以下错误,该错误将在一个小窗口上获取。我在控制台上找不到任何错误。

Java Plug-in 1.6.0_20
Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Sandy
----------------------------------------------------
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 SApplet.class not found.
java.lang.ClassNotFoundException: SApplet.class
 at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.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)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/testweb/SApplet/class.class
 at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 ... 7 more
Exception: java.lang.ClassNotFoundException: SApplet.class
load: class SApplet.class not found.
java.lang.ClassNotFoundException: SApplet.class
 at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.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)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/testweb/SApplet/class.class
 at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 ... 7 more
Exception: java.lang.ClassNotFoundException: SApplet.class

最佳答案

你的代码库写错了。它应该是相对网络路径。

在你的情况下,它应该类似于 testweb/applet-classes。但把所有的小程序类都放在那里,而不是放在 WEB-INF 下。 WEB-INF 是您应该存储在服务器端运行的类的地方。可能无法从 Web 访问此文件夹。 applet 类由运行到浏览器中的 JVM 下载,因此 WEB-INF 可能对其不可见。

更好的方法是将您的小程序类打包到 jar 文件中,并将其放在应用程序的根目录下。在这种情况下,您的代码库将类似于 codebase='myapplet.jar'

关于java - 在 Web 上运行小程序时出现类未找到异常和 IO 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334807/

相关文章:

java - 如何在 JSF 页面中正确声明一个对象存在于具有给定类型的 session 对象中?

java - 处理后获得的日期不正确

java - 无法在Java中添加ActionListener

Java Swing : Separation of logic and GUI

java - 这不应该起作用吗?显示来自 servlet 的错误消息

mysql - JSP使用当前用户的数据

java - Google App Engine 本地主机后端错误

使用 Apache Mina 的 Java socketserver - 如何设置线程?

java - JButton 未使用 setMaximumSize() 调整大小?

java - 如何移动 java gui 元素?