脱机运行java applet:线程中的异常" main" java.lang.NoClassDefFoundError

时间:2014-05-12 13:31:10

标签: java linux applet noclassdeffounderror

我刚从这个网站下载了一些Java小程序:http://www.surendranath.org/Apps.html在笔记本电脑上离线运行它们。以此为例:http://www.surendranath.org/Applets/Oscillations/Lissajous/Lissajous.html

通过检查源代码,我下载了文件:wget http://www.surendranath.org/Applets/Oscillations/Lissajous/LissajousApplet.class

然后我尝试通过gappletviewer-4.8 -code LissayousApplet.class

在我的ubuntu框上运行它

但是我收到以下错误消息:

Exception in thfully qualifiedread "main" java.lang.NoClassDefFoundError: loaded class LissajousApplet was in fact named Applets.Oscillations.Lissajous.LissajousApplet
   at java.lang.VMClassLoader.defineClass(libgcj.so.14)
   at java.lang.ClassLoader.defineClass(libgcj.so.14)
   at java.security.SecureClassLoader.defineClass(libgcj.so.14)
   at java.net.URLClassLoader.findClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at gnu.classpath.tools.appletviewer.Main.createApplet(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletWindow.<init>(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletViewer.createWindows(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletViewer.<init>(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.Main.main(libgcj-tools.so.14)

那么运行此applet 离线的正确方法是什么?在我的浏览器和icetea插件中在线运行它。但是我需要一种离线运行它的方法。

修改

尝试完全限定的类名会导致:

gappletviewer-4.8 -code Applets.Oscillations.Lissajous.LissajousApplet.class -codebase codebase="../../../" 
WARNING: CURRENTLY GAPPLETVIEWER RUNS WITH NOSECURITY MANAGER.
THIS MEANS THAT APPLETS YOU LOAD CAN DO ANYTHING A JAVA APPLICATION
THAT YOU DOWNLOAD AND RUN CAN DO.  BE *VERY* CAREFUL WHICH APPLETS YOU RUN.
DO NOT USE GAPPLETVIEWER ON YOUR SYSTEM IF YOUR SYSTEM STORES IMPORTANTDATA.
THIS DATA CAN BE DESTROYED OR STOLEN IF YOU LOAD A MALICIOUS APPLET.

[press 'c' or 'C' to continue or anything else to quit]
c
java.lang.ClassNotFoundException: Applets.Oscillations.Lissajous.LissajousApplet not found in gnu.classpath.tools.appletviewer.AppletClassLoader{urls=[file:/home/null,file:/home/], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
   at java.net.URLClassLoader.findClass(libgcj.so.14)
   at gnu.classpath.tools.appletviewer.AppletClassLoader.findClass(libgcj-tools.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at gnu.classpath.tools.appletviewer.Main.createApplet(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletWindow.<init>(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletViewer.createWindows(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.StandaloneAppletViewer.<init>(libgcj-tools.so.14)
   at gnu.classpath.tools.appletviewer.Main.main(libgcj-tools.so.14)

1 个答案:

答案 0 :(得分:1)

尝试使用完全限定的类名

gappletviewer-4.8 -code Applets.Oscillations.Lissajous.LissajousApplet.class -codebase codebase="http://www.surendranath.org/" 

阅读:gappletviewer Man page