0

我在 Eclipse 上写了一个 Japplet,时不时地,它停止在 html 页面上工作。

以下是错误:

  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 的库。实际上我不知道为什么小程序试图从服务器加载它......在 Eclipse 上它运行没有任何问题。

编辑

我已经物理复制了eclipse项目中的库......它仍然试图从服务器获取它们......我不知道还能做什么......

4

2 回答 2

0

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

如果你有 gson jar ,你可以/static/java像你一样MapGenerator.jar请求 gson jar MapGenerator.jar。但是您不能请求从该 jar 中获取课程。

于 2012-11-23T06:55:56.203 回答
0

显然没有人告诉我我不能将一个 Jar 插入另一个 Jar 中,并希望一切正常。

所以我把我的 JAR 库放在 applet 的同一个文件夹中,并以这种方式加载 applet:

    <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>
于 2012-11-23T11:07:30.340 回答