Avatar billede qumle Nybegynder
29. oktober 2007 - 11:31 Der er 1 kommentar

NoClassDefFound for Applet

Hej

Jeg har skrevet en applet som kører fint hvis jeg starter den fra eclipse som Swing Application vha main metode.

men når jeg starter den fra en HTML side med følgende tag så får jeg en NoClassDefFoundError på en nonstandard java klasse jeg bruger i min applet, JSVGCanvas.

det er jo logisk nok at applikationen ikke som standard kender denne klasse og grunden til at det virker fra Eclipse er vel at jeg har tilføjet den jar fil i Build path.

men jeg kan ikke rigtig finde ud af hvor jeg skal lægge min 3rd party jar fil for at det kører fra en browser.
jeg har forsøgt at lægge jar filen i samme katalog som både java fil og html fil (min classpath er ".") men det hjalp ikke.

nogen forslag til hvad der kan være galt?

html side:

<html>
<body>
<applet code="batiktest.demo.FindMyFriendsApplet.class" width="1000" height="700">
</applet>
</body>
</html>


Applet code (censureret)

package batiktest.demo;

//other imports removed
import org.apache.batik.swing.JSVGCanvas;

/**
* this is a demo application that uses the Batik SVG framework to display Visio drawings in a Java applet
*
* @author Ulrik.Lund
*
*/
public class FindMyFriendsApplet extends Applet {
    /**the frame to display the applet in**/
    static JFrame f = new JFrame();
    /**
    * the panel to add graphic content to
    */
    static JPanel p = new JPanel(null);

    /**
    * canvas used to display the selected content
    */
    static JSVGCanvas detailCanvas = new JSVGCanvas();

//other fields

    public static void main(String[] args) {

        // Create an array of SVG canvas for each svg file
        //loops through the inout files, loads an SVGDocument and adds it to a JSVGCanvas for each file
        List<JSVGCanvas> canvasList = new ArrayList<JSVGCanvas>();
        for (String filePath : files) {
            canvasList.add(loadSVGCanvas(new JSVGCanvas(), filePath));
        }
       
        // displays the SVGDocuments in an overview list
        showOverviewSvg((JSVGCanvas[]) canvasList.toArray(new JSVGCanvas[files.length]));

    }


    public static JSVGCanvas loadSVGCanvas(JSVGCanvas _svgCanvas, String fileUri) {

//contains code to show graphic in the applet

    }
Avatar billede mikkelbm Nybegynder
29. oktober 2007 - 13:34 #1
Du skal have pakket din egen klasse/klasser ind i en jar-fil. I denne jarfil skal du udspecificere hvilket eksterne libraries du gør brug af.

Læs mere her:

http://java.sun.com/docs/books/tutorial/deployment/jar/
og her
http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html


Eclipse har en funktion der gør at du nemt kan deploye din applikation pakket ind i en jar-fil.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester