HAFTUNGSAUSSCHLUSS :
Dies ist der klassische Fall einer .NET-GUI, die versucht, sich mit JAVA zu arrangieren.
PROBLEMBESCHREIBUNG:
Ich versuche, eine sehr einfache GUI mit JFace und SWT zu bauen - der Code ist geradlinig (es gibt viele Tutorials), was es nicht so geradlinig ist, dass ich nicht scheinen kann, um JFace und SWT außerhalb eines Plugin-Projekts zu arbeiten.
Ich würde erwarten, dass ich JFace und SWT in meinem Projekt problemlos verwenden kann, da ich "C:/eclipse 3.5/plugins" in meinen CLASSPATH (von meinem Computer --> Eigenschaften --> Erweitert --> Umgebungsvariablen) und alle swt-*.dll, die ich in meinem PATH finden konnte (sowohl lokale Benutzer- als auch globale PATHs, um sicher zu sein) als dieser Artikel im Feld "Installation von SWT und JFace" an.
Das Problem ist, dass ich nichts von eclipse.org importieren kann, es sei denn, ich verweise direkt auf die Jars von Buildpath --> Bibliotheken --> externe Jars hinzufügen (damit es zu bauen, muss ich die folgenden Jars hinzufügen: org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar , org.eclipse.jface_3.5.1.M20090826-0800.jar ). Sobald ich das tue, wird es gut gebaut, aber wenn ich es dann als "Java-Anwendung" ausführe, erhalte ich folgende Fehlermeldung (sollte ich LAUFEN ALS etwas anderes?):
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
at demo.ui.test.EntryPoint.main(EntryPoint.java:18)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 1 more
Ich habe versucht, dies zu debuggen, und im Grunde wird es ausgelöst, sobald es versucht, die Instanzierung der ApplicationWindow
Klasse (org.eclipse.jface.window.ApplicationWindow). Beim Versuch, den Fehler zu reproduzieren, habe ich meinen gesamten Code auskommentiert und durch den folgenden in meinem Hauptprogramm ersetzt, und es wird der gleiche Fehler wie oben in der ersten Zeile ausgegeben:
ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
FRAGEN:
Frage 1 Wie kann ich den obigen Fehler beheben (ich würde gerne verstehen, was da los ist) und das verdammte Ding zum Laufen bringen?
Frage 2 Warum sind die Gläser in meinem Projekt nicht sichtbar und wie kann ich sie herstellen?
Wahrscheinlich übersehe ich etwas sehr Triviales, weil ich mich mit Java und Eclipse nicht auskenne. Jede Hilfe wird sehr geschätzt!
EDIT : Anscheinend hatte jemand anderes das gleiche Problem --> http://www.eclipsezone.com/eclipse/forums/t60528.html - Allerdings ist nicht ganz klar, wie sie das Problem gelöst haben; Hilfe ist willkommen.