【问题标题】:JApplet NoClassDefFoundErrorJApplet NoClassDefFoundError
【发布时间】:2012-11-11 12:51:42
【问题描述】:

我在 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 项目中的库...它仍然尝试从服务器获取它们...我不知道还能做什么...

【问题讨论】:

  • "..它停止在 html 页面上工作。"该页面的 URL 是什么?
  • 我认为它没有用...但这里是:127.0.0.1:8000/buildings/generate/new_building=45
  • 把它放到网上,我会调查的。
  • 抱歉,不,仅将此页面设置为“外部”需要太多工作,它是其他六个页面中复杂向导的一部分...但感谢您的提议;)

标签: java applet noclassdeffounderror


【解决方案1】:

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

如果您在/static/java 下有gson jar,例如MapGenerator.jar,您可以像为MapGenerator.jar 一样请求gson jar。但是你不能请求从那个 jar 中获取类。

【讨论】:

    【解决方案2】:

    显然没有人告诉我不能将一个 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多