2012-11-23 74 views
0

我正在Eclipse上编写一个Japplet,从一刻到另一个,它停止工作在HTML页面上。JApplet NoClassDefFoundError

下面是错误:

Exception in thread "thread applet-main.MapGenerator.class-1" java.lang.NoClassDefFoundError: com/google/gson/Gson 
at main.Floor.parse(Floor.java:39) 
at main.MapGenerator.loadParameters(MapGenerator.java:64) 
at main.MapGenerator.start(MapGenerator.java:28) 
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1698) 
at java.lang.Thread.run(Thread.java:662) 

    Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson 
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 5 more 

而这里也正是服务器的请求:

"GET /static/java/MapGenerator.jar HTTP/1.1" 200 68177 
    "GET /static/java/com/google/gson/Gson.class HTTP/1.1" 404 1697 

的一点是,它试图找到该服务器,而不是其包装内的GSON库...我不知道如何解决这个问题。

如果您需要某些东西,请随意提问。

编辑

我已经导入我在Eclipse项目中的GSON的图书馆。其实我不知道applet为什么会尝试从服务器上加载它......在Eclipse上它运行时没有任何问题。

编辑

我抄物理库的Eclipse项目里面......,它仍然试图从服务器获取他们......我不知道自己还能做什么...

+0

* *什么该网页的网址? –

+0

我不认为它可以有用...但这里是: http://127.0.0.1:8000/buildings/generate/new_building=45 –

+0

使它在网络上可用,我会研究它。 –

回答

0

第一件事你没有在你的类路径中添加gson库,第二件事你的请求(GET /static/java/com/google/gson/Gson.class HTTP/1.1)是错误的。

如果你有像MapGenerator.jar这样的/static/java下的gson jar,你可以请求gson jar,就像你为MapGenerator.jar做的一样。但是你不能请求从课堂上课。

0

显然没有人告诉我,我不能在另一个罐子里插入一个罐子,并希望一切运作良好。

所以我把我的JAR库的小程序的同一个文件夹,和我加载小程序是这样的:“..它停下来的html页面上工作”

<applet name="mapGenerator" 
      id="mapGenerator" 
      code="main.MapGenerator.class" 
      archive="{{STATIC_URL}}java/MapGenerator.jar, 
          {{STATIC_URL}}java/gson-2.2.2.jar, 
          {{STATIC_URL}}java/plugin.jar" 
        > 
        <param name=id value="{{building.id}}"> 
        <param name=piani value='{{floors}}'> 
      MAYSCRIPT 
    </applet>