Frage

HAFTUNGSAUSSCHLUSS :

Dies ist der klassische Fall von .NET GUI versucht, seinen Weg um JAVA Sachen zu arbeiten.

Problem Beschreibung:

Ich versuche, eine sehr einfache GUI mit JFace und SWT zu bauen - der Code ist einfach (es gibt viel Tutorials), was ist es nicht so einfach ist, dass ich nicht JFace und SWT zur Arbeit außerhalb eines Plugin-Projektes scheinen zu bekommen .

Ich würde erwarten, dass JFace und SWT in meinem Projekt keine Mühe verwenden, da ich setzte "C: / Eclipse 3.5 / plugins" in meinem CLASSPATH (von meiner Computer -> Eigenschaften -> Erweitert -> Umgebungsvariablen) und alle swt - *. dll ich in meinem PATH (sowohl lokale Benutzer und globale PFADe sicher sein): dieser Artikel in der Meldung "Installation von SWT und JFace" -Box.

Das Problem ist, ich kann nicht importieren alles von eclipse.org, wenn ich direkt die Gläser aus buildpath Referenz -> Bibliotheken -> fügen Sie externe Gläser (damit ich es zu bauen haben die folgenden Gläser hinzuzufügen: org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar , org.eclipse.jface_3.5.1.M20090826-0800.jar ). Sobald ich, dass es baut in Ordnung, aber wenn ich dann führen Sie es als „Java Application“ ich folgende Fehlermeldung erhalten (sollte ich RUN AS 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 ist es so bald geworfen, wie es versucht, die ApplicationWindow Klasse (org.eclipse.jface.window.ApplicationWindow) zu instanziiert. Der Versuch, den Fehler zu reproduzieren, kommentierte ich alle meine Code aus und ersetzte sie durch die folgenden in meinem Haupt und es wirft er denselben Fehler wie oben in der ersten Zeile:

ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();

FRAGEN:

Frage 1 : Wie kann ich das beheben den Fehler oben (Ich mag würde, verstehen, was los ist) und steigen Sie das verdammte Ding laufen

Frage 2 : warum die Gläser sind nicht sichtbar für mein Projekt und wie sie machen

Ich bin wahrscheinlich etwas sehr trivial aufgrund meiner mangelnden Vertrautheit mit Java und Eclipse fehlt. Jede Hilfe sehr geschätzt!

Bearbeiten : scheint, wie jemand anderes hatte das gleiche Problem -> http://www.eclipsezone.com/eclipse/forums/t60528.html - nicht zu klären, wie sie es gelöst allerdings Unterstützung geschätzt

War es hilfreich?

Lösung

IProgressMonitor Schnittstelle ist in diesen beiden Gläsern Sie verwenden nicht zur Verfügung. Sie müssen auch setzen org.eclipse.equinox.common Plugin auf Ihrem Classpath. IProgressMonitor kann, ohne ganze Eclipse-Umgebung ausgeführt werden.

(Dies ist Lösung aus dem Artikel, den Sie zu verweisen. Ich ursprünglich dachte, dass IProgressMonitor in ist org.eclipse.core.runtime Plugin, aber es hat zu org.eclipse.equinox.common wie beschrieben bewegt worden in Bug # 122935 )

Andere Tipps

Hallend Peters Punkt oben, muss ich immer ein Bündel von JAR-Dateien hinzufügen, um die Dinge (vor allem für JFace) zum Laufen bringen. Normalerweise werde ich brauche

./org.eclipse.core.commands_3.3.0.I20070605-0010.jar
./org.eclipse.core.runtime_3.3.100.v20070530.jar
./org.eclipse.equinox.common_3.3.0.v20070426.jar
./org.eclipse.jface_3.3.1.M20070910-0800b.jar
./org.eclipse.osgi_3.3.2.R33x_v20080105.jar
./org.eclipse.ui.forms_3.3.0.v20070511.jar

Sie können so etwas wie jarfinder zu Hilfe vor Ort nutzen, was in dem, was JARs Live-Dateien. In Fenstern scheinen ich für, sagen wir, IProgressMonitor.class in zip / jar-Dateien unter dem Eclipse-Ordner auf dem Dateisystem mithilfe der Suchfunktion zu sehen erinnern -., Da manchmal die eigentlichen JAR-Dateien können schwer aufzuspüren

ich in der Regel Arbeit zu sehen, was fehlschlägt, das Aufspüren / Hinzufügen der JAR, Spülen und wiederholen.

Ihren RCP / plugins scheint wie Eclipse um eine Reihe von Fragen für Dich nimmt, Ihre eigene Stand-alone-Anwendung mit diesem zusätzlichen Gepäck kommt zu tun, aber es ist wirklich schön, eine richtigen Stand-alone-nativen Suche GUI haben, wenn Sie mit Stick es. Also ich in der Regel Setup Vanille (Nicht-Plugin) Eclipse-Projekte und es zwingt Sie diese Probleme (Add JARs zu dem Classpath manuell) zu konfrontieren. Es ist auch praktisch, wie und wann Sie Ihr Projekt verteilen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top