Wer kennt sich mit der Eclipse API aus?

hdi

Top Contributor
Hi,
ich schreibe gerade an einem Eclipse Plugin - genauer für den EPF Composer. Nun muss ich die API von Eclipse benutzen um die Anwendung umsetzen zu können. u.A. will ich ein Projekt im Workspace erstellen, also programmatisch. Aber ich weiss nicht so recht wie bzw. bei mir kackt Eclipse ab. Ich benutze folgende API:

Generated Documentation (Untitled)

Ich habe dann folgendes versucht:
Java:
IProject project = MethodLibraryProject.createProject("C:/test", "Test Project", null);
Die Anweisung wird niemals zu Ende ausgeführt, d.h. hier bleibt er hängen.

Dann hab ich im Inet noch das hier gefunden:
Java:
				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
				IProject project = root.getProject("Test-Project");
				project.create(null);
				project.open(null);
Auch hier: in der ersten Anweisung bleibt er irgendwo stecken und kommt nicht weiter. Etwa jedes zweite mal stürzt mir die komplette Debug-Application ab mit einem schweren VM-Fehler.

Hier einfach mal eine grundsätzliche Frage: Verwende ich die richtige API oder nicht? Wieso bleibt er immer hängen? Wie erstellt man denn ein Projekt im Workspace programmatisch?
Hat vllt irgendwer einen Link zu einem Crashkurs darüber wie man die Eclipse API nutzt? Vllt Beispiele?

Danke!
 

hdi

Top Contributor
Also ich hab das ganze jetzt nochmal auf meinem Eclipse daheim probiert.. Aber das geht nicht. Bei

Java:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

bleibt er einfach hängen, d.h. ein sysout davor wird angezeigt, eins danach nicht mehr. Wenn ich es dann nochmal versuche kommt dieser VM Crash, vermutlich weil er eh schon hängt.

Ich hab den Code nun aus dem Plugin rausgenommen und normal in eine main-Methode geschrieben. Folgender Fehler beim Aufruf:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Plugin
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 blub.main(blub.java:8)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.Plugin
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)
... 13 more

Ich hab die 2 Packages
Code:
eclipse.core.resources.win32
und
Code:
eclipse.core.resources.3_5_1
ins Projekt eingebunden, d.h. er müsste die Klassen schon kennen? Ist ja auch kein compile-Error.

Könnt ihr das mal bei euch versuchen?
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Du darfst bei einem Plugin niemals den Java Build Path verändern. Der Classpath ergibt sich aus der Manifest.MF (import package und require bundle)
 

hdi

Top Contributor
Okay danke, das geht jetzt. Ich hab aber noch immer n Problem - ich brauche Libraries aus dem EPF. Das EPF ist natürlich separat zu Eclipse installiert, und ich kann aber im Dialgo der Manifest-Datei scheinbar nur Libraries auswählen die in Eclipse sind.
Hab schon versucht die Libs vom EPF Ordner nach Eclipse zu ziehen, sowohl in Plugins als auch Features Ordner, aber ich kann sie nicht auswählen.

Wie binde ich in der Mafinest externe Libs ein?

Danke!
 

Wildcard

Top Contributor
Du musst eine Target Platform definieren. Entweder über die Preferences oder über ein Target Definition File. Deine Bundles werden immer gegen die Target Platform kompiliert, wenn du keine explizite angibst wird die running Eclipse instance verwendet.
 

hdi

Top Contributor
Danke, also ich hab das jetz getan und das EPF Installment zusätzlich hunzugefügt, im Reiter "Content" sind jetzt also bei der Target Platform auch alle Packages aus dem EPF.
Dadurch kann ich nun weitere Packages als Dependency in der Manifest angeben - eig. passt alles. Leider nur eigentlich, denn ich hab folgendes Problem:

Ich möchte folgende Klasse nutzen:
NewMethodPluginWizard

Das package org.eclipse.epf.authoring.ui.wizards hab ich bei den Dependencies in der Manifest geaddet, trotzdem kann er die Klasse nicht finden??
 

hdi

Top Contributor
So ich meld mich mal wieder, es scheint noch zu dauern bis ich durch dieses Plugin-Thema durchsteige. Nachdem wir ja schon geklärt hatten dass ich Epf als Target Platform einbinden muss um in der Mainfest-Datei des Plugins die Bibliotheken daraus importieren zu können, gings ja. Ging's. Jetzt geht's nicht mehr -- ich hatte den PC neu gemacht und halt wieder Eclipse drauf getan und meinen alten Workspace verwendet, und eben wieder bei der Target Platform EPF eingebunden.

Es werden mir auch keine Fehler im Projekt angezeigt, allerdings wenn ich das ganze starten will als Eclipse Application:


Irgendwie hängt das zusammen mit der Target Platform. Ich hab halt Add -> Installment gemacht und dort den Pfad zu EPF angegeben. Er findet dann auch alle Libs usw und in meinem Projekt meckert er nicht dass er etwas nicht kennt. Allerdings kommt dann eben der o.g. Fehler, auch bei anderen Plugins (zB beim Hello-World Plugin).
Wenn ich als Target Platform wieder Standard nehme also nur Eclipse, geht das Hello-World Bsp wieder. Aber mein anderes natürlich nicht weil ich dann schon zur Compile-Zeit Fehler krieg dass er die eingebundenen Libs nicht findet.

Um das ganze noch verwirrender für mich zu gestalten ist es außerdem so dass das Hello-World Plugin manchmal auch mit der erweiterten Target Platform (also Eclipse + EPF) funzt, macnhmal kommt auch da der Fehler.
Und auch bei meinem eigenen Plugin kommt nur manchmal der Fehler, manchmal startet die App auch normal allerdigns wird mein Plugin halt nicht angezeigt.

Woher kommt das nun auf einmal, ich kann mich nicht dran erinnern irgendwas umgestellt zu haben? Ich steig da gar nicht mehr durch. Nochmal wie ich's jetzt verstanden und umgesetzt hab:

1) Neue Target Platform definieren die sowohl Eclipse als auch die EPF Libs hat, und diese setzen
2) Bei den Extensions im Plugin die nötigen Libs adden die darin gebraucht werden
Sollte doch gehen? Ich krieg ja auch keine Fehler zur Compile-Zeit...

Naja könnt ihr mit dem Fehler was anfangen?

Danke!

PS:Hab auch versucht Eclipse runterzuhauen und neu zu ziehen - aber noch immer der selbe Fehler.
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
PDE ist dafür verantwortlich den Java Build Path zu justieren. Manchmal kommt PDE durcheinander und der Java Build Path wird ungültig. In diesem Fall mach einen Rechtsklick aufs Projekt -> PDE Tools -> Update Classpath
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Literatur: Kennt einer ein gutes RCP Buch Plattformprogrammierung 13
C Es lässt sich kein Projekt in Netbeans anlegen Plattformprogrammierung 2
B Mac Installer aus .product Datei - Programm öffnet sich nicht Plattformprogrammierung 1
P RCP Text Editor Example - Missing Bundles lassen sich nicht auffinden. Plattformprogrammierung 6
c_sidi90 Android SDK hängt sich auf Plattformprogrammierung 2
M RCP Aktivierung eines CommandHandlers, Änderungen in der plugin.xml wirken sich nicht aus... Plattformprogrammierung 2
Spot84 compareeditor in eclipsercp plugin verhält sich komisch Plattformprogrammierung 3
E OSGi Eclipse Plug-in programmierung: java.lang.NullPointerException: Cannot enter synchronized block because "profile" is null Plattformprogrammierung 4
R Eclipse Bundles Plattformprogrammierung 2
Robertop RCP Command in bereits bestehendes Eclipse-Menü einbauen Plattformprogrammierung 4
T Java Projekt läuft nur in Eclipse Plattformprogrammierung 6
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
M Debuging in Eclipse Annotations Processor Plattformprogrammierung 0
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
L0MiN Wie kann ich ein Klassendiagramm aus Eclipse heraus erstellen? Plattformprogrammierung 5
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
F Eclipse Build Path auf benötigte Projekte Plattformprogrammierung 4
B Daten von Eclipse extern sichern Plattformprogrammierung 2
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
VfL_Freak [Eclipse] Fehleranzeige im Reiter "Problems" Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T eclipse bietet keine META-INF an Plattformprogrammierung 1
N Eclipse wo starten Plattformprogrammierung 6
A Eclipse schließt einfach ohne Fehlermeldung Plattformprogrammierung 4
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
A RCP Eclipse e4 und Injection-Contexts Plattformprogrammierung 0
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
C [Eclipse RCP E4]InjectionException: no actual value was found for the argument "MDirtyable" Plattformprogrammierung 8
T Eclipse Eigenschaften hinzufügen Plattformprogrammierung 2
M RCP [Eclipse RCP 3.4] ViewTab Kontextmenu "Alle schließen" Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
S Verschieben des Verzeichnis .eclipse aus Userprofile Plattformprogrammierung 3
A RCP Kann kein Eclipse 4 Projekt anlegen Plattformprogrammierung 0
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
G Eine Library in Eclipse zur Verfügung stellen Plattformprogrammierung 14
Gregorrr Eclipse RCP Product Build-Nummer + Jenkins Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
C plugin development environment eclipse Plattformprogrammierung 4
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
O Installiere externe Methode "containsNone" in Eclipse Plattformprogrammierung 2
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
B Eclipse Probleme mit build Plattformprogrammierung 8
H Keine Hilfe/API mehr in Eclipse Juno? Plattformprogrammierung 4
B Neue SuppressWarning in Eclipse Juno Plattformprogrammierung 6
B Eclipse Property Page Plattformprogrammierung 6
B Eclipse PreferencePage Plattformprogrammierung 3
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
B Birt-Previewer über Eclipse Plattformprogrammierung 14
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
C Eclipse: Notification beim umbennen von Methoden? Plattformprogrammierung 4
schalentier Eclipse Sourcecode Plattformprogrammierung 4
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
P Eclipse M2_REPO (NON MODIFIABLE) Plattformprogrammierung 8
B Eclipse: Contextmenu id erhalten? Plattformprogrammierung 9
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
O Neues Tastenkürzel für Eclipse Editorfenster registrieren Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
Madlip RCP eclipse.ui.bindings (Key-Problematik) Plattformprogrammierung 2
S Eclipse vs. JavaMail vs. Ubuntu vs. Windows Plattformprogrammierung 3
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
S Eclipse: Auf CTRL-C/CTRL-V im Package Explorer? Plattformprogrammierung 4
M Eclipse und Hilfen Plattformprogrammierung 5
G Eclipse buggt rum!!! Plattformprogrammierung 4
B Eclipse RCP und Java 7 Plattformprogrammierung 7
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
G Eclipse Plug-in: wie refreshe ich eine combobox? Plattformprogrammierung 4
M Eclipse Plug-in: Wie eine Grafik einfügen? Plattformprogrammierung 20
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
P Eclipse speichert keine Änderungen Plattformprogrammierung 5
M Eclipse - Dokumentation nicht über das Internet benutzen Plattformprogrammierung 3
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
E org.eclipse.ui.dialogs.ListSelectionDialog erzeugt ClassNotFoundException zur Laufzeit Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C RCP Verständnisfrage Eclipse/Equinox Plattformprogrammierung 4
D eclipse-RCP von der Konsole baut nicht Plattformprogrammierung 3
L RCP Eclipse Popupmenu im PackageExplorer erweitern? Plattformprogrammierung 7
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
C Pdf in jar datei einbinden mit eclipse Plattformprogrammierung 23
G neuer branch in SVN mit Eclipse Plattformprogrammierung 6
F RCP eclipse rcp ohne eclipse? Plattformprogrammierung 15
dzim RCP Eclipse Provisioning Plattformprogrammierung 3
G RCP Abhängigkeiten von Eclipse Plugins Plattformprogrammierung 9
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
T Eclipse Helios XMLUnit importieren Plattformprogrammierung 6
R Verwendung pdfbox in Maven-Projekt in Eclipse Plattformprogrammierung 3
lumo RCP wechseln der Font von Eclipse per code Plattformprogrammierung 10
lumo RCP Eclipse internationalisierung Plattformprogrammierung 5
jemandzehage Kurze Fehlernachricht beim starten in Eclipse Plattformprogrammierung 5
A RCP java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3

Ähnliche Java Themen


Oben