JFace Konstruktoren machen Probleme wenn ein JAR erstellt wurde

HuberDe

Mitglied
Hallo zusammen,

ich habe Probleme mit meiner SWT Applikation. Ich habe aus meinem Eclipse Projekt ein JAR erstellt. Anfangs hatte ich das Problem, dass wenn ich die Datei gestartet habe, nichts passiert ist. In der Eingabeaufforderung werden auch keine Fehler ausgegeben. Es passiert einfach nichts. Ich konnte den Fehler soweit eingrenzen, als dass ich jetzt weiß, dass es eigene Klassen von mir sind, die Probleme verursachen. In diesen Klassen rufe ich an verschiedenen Stellen Konstruktoren von JFace Objekten auf:

Code:
preferenceStore = new PreferenceStore("configuration/Program.properties");

Code:
imageRegistry = new ImageRegistry();

Argumentiere ich nun diese Codestellen aus, startet meine Applikation ohne Probleme. Komischerweise habe ich auch Konstruktoraufrufe wie:

Code:
colorRegistry = new ColorRegistry();

welche einwandfrei funktionieren. Im Eclipsebetrieb funktioniert der ganze Code ohne Probleme, aber sobald ich ein Jar daraus erstelle funktioniert nichts mehr.

Ich denke es könnte ein class-path Problem sein. Ich habe folgende jars eingebunden:
Code:
 org.eclipse.osgi_3.2.0.v20060601.jar
 org.eclipse.equinox.common_3.2.0.v20060603.jar
 org.eclipse.equinox.registry_3.2.0.v20060601.jar
 org.eclipse.core.commands_3.2.0.I20060605-1400.jar 
 org.eclipse.core.runtime_3.2.0.v20060603.jar 
 org.eclipse.core.boot_3.1.100.v20060603.jar 
 org.eclipse.core.jobs_3.2.0.v20060603.jar 
 org.eclipse.jface_3.2.0.I20060605-1400.jar 
 org.eclipse.jface.databinding_1.0.0.I20060605-1400.jar 
 org.eclipse.jface.text_3.2.0.v20060605-1400.jar

Ich denke das sollten alle sein?
 
Hi,

ich bin jetzt ein Stück weiter. Da die Dos Box auch nichts ausgespuckt hat, habe ich die Standard und die Error Ausgabe mal auf eine Datei umgebogen. Und siehe da, jetzt bekomme ich auch eine Fehlermeldung:

Code:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/commands/common/EventManager
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$000(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$000(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at mta.xtde.Resource.<init>(Resource.java:31)
	at mta.xtde.Resource.getInstance(Resource.java:47)
	at mta.xtde.Xtde.createSShell(Xtde.java:63)
	at mta.xtde.Xtde.main(Xtde.java:46)

Wie ihr an meinen Imports sehen könnt, habe ich die core.commands jedoch eingebunden!? Oder verstehe ich das nicht richtig?
 
Zurück