简体   繁体   中英

JApplet NoClassDefFoundError

I'm writing an Japplet on Eclipse, and from a moment to another, it stopped to work on the html page.

Here are the errors:

  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

And here it is also the server request:

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

The point is that it tries to find the Gson library inside the server instead of its package... I don't know how to solve the problem.

If you need something, ask freely.

EDIT

I have imported the Gson's library inside my project in eclipse. Actually I don't know why the applet tries to load it from the server... On Eclipse it runs withouth any problem.

EDIT

I have copied physically the libraries inside the eclipse project... and it still try to get them from the server... I don't know what else do...

1st thing you did not add gson library in your classpath and second your request( GET /static/java/com/google/gson/Gson.class HTTP/1.1 ) is wrong.

If you have gson jar under /static/java like MapGenerator.jar , you could make request for gson jar same as you did for MapGenerator.jar . But you can not make request to get class from that jar.

Apparently nobody told me that I cannot insert a Jar inside another Jar, and hope that all works well.

So I put my JAR libraries in the same folder of the applet, and I load the applet this way:

    <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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM