Java - NoClassDefFoundError

K

ksweb

Jungspund
Hallo!

ich weiß dieses Problem hatten schon viele, aber konnte mein Problem mit den Beschreibungen anderer nicht lösen :(

ich wollte von der INternetseite http://xml.apache.org/batik/svgcanvas.html den Code mal unter Linux testen.

habe ihn mittels:
/usr/java/j2sdk1.4.2_07/bin/javac -classpath /home/ietd/classes.zip:/home/testuser/jsdk.jar:/home/testuser/xalan.jar:/home/testuser/xerces_2_5_0.jar:/home/testuser/batik.jar:/home/ietd/xml-apis.jar SVGApplication.java

kompiliert - ohne Fehler ;-) die Klasse SVGApplication.java liegt genau in dem Verzeichnis wo ich mich gerade in der Shell befinde.

aber wenn ich den ganzen Pfad versuche auszuführen also anstatt javac natürlich java und anstelle SVGApplication.java nur SVGApplication schreibe, sagt er mir eben:

Exception in thread "Main" java.lang.NoClassDefFoundERror: SVGApplication

hat jmd ne Idee wo das dran liegen könnte? :hilfe2:
LG ksweb
 
Der Quellcode ist von der INternetseite die ich angegeben hatte :)

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;
import org.apache.batik.swing.svg.GVTTreeBuilderEvent;

public class SVGApplication {

public static void main(String[] args) {
JFrame f = new JFrame("Batik");
SVGApplication app = new SVGApplication(f);
f.getContentPane().add(app.createComponents());

f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(400, 400);
f.setVisible(true);
}

JFrame frame;
JButton button = new JButton("Load...");
JLabel label = new JLabel();
JSVGCanvas svgCanvas = new JSVGCanvas();

public SVGApplication(JFrame f) {
frame = f;
}

public JComponent createComponents() {
final JPanel panel = new JPanel(new BorderLayout());

JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
p.add(button);
p.add(label);

panel.add("North", p);
panel.add("Center", svgCanvas);

// Set the button action.
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
JFileChooser fc = new JFileChooser(".");
int choice = fc.showOpenDialog(panel);
if (choice == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
try {
svgCanvas.setURI(f.toURL().toString());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});

// Set the JSVGCanvas listeners.
svgCanvas.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
label.setText("Document Loading...");
}
public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
label.setText("Document Loaded.");
}
});

svgCanvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
public void gvtBuildStarted(GVTTreeBuilderEvent e) {
label.setText("Build Started...");
}
public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
label.setText("Build Done.");
frame.pack();
}
});

svgCanvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
label.setText("Rendering Started...");
}
public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
label.setText("");
}
});

return panel;
}
}
 
das was der avaurus vermutet, meine auch ich zu sehen,
nämlich genau das, das man etwas bestimmtes nicht sieht, eine main-funktion.
mein vorschlag dazu ist, den code um diese methode zu ergänzen:
Code:
public void main(String args[]){
 new SVGApplication();
}
 
Hab jetz erst deinen Vorschlag gelesen :( es ging, wenn ich beim aufruf auf der Konsole beim letzten jar-file noch einen Doppelpunkt hingeschrieben habe. komisch gell, aber RedHat braucht das anscheinend, also sozusagen so:

/usr/java/j2sdk1.4.2_07/bin/java /home/test/servlets/jsdk.jar:/home/test/servlets/xalan.jar: testprogramm

also der letzte Doppelpunkt hatte gefehlt und dadurch gings net *hihi*
Danke trotzdem ;-)
Ksweb
 

Ähnliche Themen

Exceptions lassen sich nicht catchen

Java unter CYGWIN Problem

MySQL mit Java und JDBC

Java SDK auf SuSE 10.0 - Pfad[finder]fragen

Java Development Kit Installation

Zurück
Oben