NoClassDefFound for Applet
HejJeg 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
}