我在我的一台服务器上运行Java Web applet。由于某种原因,特定用户无法访问它(出现错误文本代替applet,显示“错误。点击查看详细信息”;这不是我放置在标签之间的文本,即他的JRE已安装并显示在至少是正确安装但由于某种原因它不能在我的applet上工作。
我认为这与他特有的JRE风格有关 - 这就是所谓的“HotSpot”版本。 (见http://www.experts-exchange.com/Programming/Languages/Java/Q_24405442.html如果你有一个EE帐户,我不记得我的随便)。我不太熟悉Java本身或它的变化 - 我只是页面中applet的实现者(我没有写它)。
小程序适用于我,以及每个其他用户到目前为止。此外,它不应该在他的错误中引用下面列出的文件,例如“http://mywebsite.com/java/JavaVersionDisplayApplet/class.class”。该文件位于“http://mywebsite.com/java/JavaVersionDisplay.class”。根据applet程序员的说法,他的错误指向一个甚至在他的代码中都没有指定的文件。
用户的错误显示为:
Java Plug-in 1.6.0_13
Using JRE version 1.6.0_13 Java HotSpot(TM) Client VM
User home directory = C:Documents and Settingsjohn
load: class JavaVersionDisplayApplet.class not found.
java.lang.ClassNotFoundException: JavaVersionDisplayApplet.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://mywebsite.com/java/JavaVersionDisplayApplet/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: JavaVersionDisplayApplet.class
load: class JavaVersionDisplayApplet.class not found.
java.lang.ClassNotFoundException: JavaVersionDisplayApplet.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://mywebsite.com/java/JavaVersionDisplayApplet/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: JavaVersionDisplayApplet.class
答案 0 :(得分:0)
我首先将应用程序打包为jar文件而不是一组类文件。似乎JavaVersionDisplayApplet.class被解释为完全限定的类名...也就是说,JVM认为“JavaVersionDisplayApplet”是包名,“class”是类名。
您可以在HTML中发布您正在使用的APPLET标记的内容吗?
答案 1 :(得分:0)
您可能想要了解的几件事情:
他在使用Chrome吗? Chrome和Java似乎还没有很好地协同发挥。
他是否使用代理服务器? “连接失败”错误可能表示他正在使用允许浏览器通过的代理,而不是JRE。
答案 2 :(得分:0)
这是罪魁祸首:
Caused by: java.io.IOException: open HTTP connection failed:http://mywebsite.com/java/JavaVersionDisplayApplet/class.class
JVM已启动,但无法连接到托管applet的服务器。用户是否连接到mywebsite.com或其他名称?