[solved] Eclipse RCP: Zugriff auf Classpath-Inhalt

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hallo zusammen,

ich habe eine größere Eclipse RCP Anwendung, welche einen Systemprozess mittels Runtime.exec() starten muss.

Bei diesem Prozess handelt es sich ebenfalls um eine Java-Anwendung.

Die zu startende Java Anwendung (die als separater Prozess laufen MUSS) benötigt unter anderem die von der Eclipse RCP Anwendung mitgelieferten SWT Bibliothek, sowie Log4j und noch ein paar Plugins (bzw. ein paar Klassen die darin enthalten sind).

Ich weiß, das ist nicht sonderlich "schick", aber besser gings jetzt für's erste nicht.

An die Information, welche Libs von der RCP Anwendung genutzt werden und wo sie sich befinden, bin ich bisher über die Java System Property "osgi.bundles" gekommen.

Beim starten der Anwendung via Eclipse und auch nach dem Exportieren der Anwendung aus Eclipse heraus hat das prima funktioniert. "osgi.bundles" enthielt immer die passenden Informationen die ich extrahieren und zum angeben des Classpaths der zu startenden Java-Anwendung verwenden konnte.

Das komplette Projekt wird auch noch per Ant und CruiseControl "headless" gebaut. An sich funktioniert das prima. Nur hab ich jetzt entdeckt, dass "osgi.bundels" auf diesem Build-Weg die benötigte Information nicht mehr enthält. Da steht jetzt etwas anderes drin:

Statt dem hier:

reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/RemotePointerPlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/DependencyPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/DependencyPlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/LoggingPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/OnlineHelp,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/ControlPanelPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/ControlPanelPlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/OperatorUI,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/OperatorUI.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/RemotePointerPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/SquidModePlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/DisplayPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/DisplayPlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/PerspectivePlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/PerspectivePlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/ScalerWidgetPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/ScalerWidgetPlugin.nl,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/SidebarPlugin,reference:file:D:/Users/achr/Sandboxes/Copy-of-SMD-NCS-Programs-CMS/Subsystems/CMS/Java/SidebarPlugin.nl,reference:file:C:/Lang/eclipse/plugins/com.ibm.icu_3.8.1.v20080530.jar,reference:file:C:/Lang/eclipse/plugins/javax.servlet_2.4.0.v200806031604.jar,reference:file:C:/Lang/eclipse/plugins/javax.servlet.jsp_2.0.0.v200806031607.jar,reference:file:C:/Lang/eclipse/plugins/javax.xml_1.3.4.v200806030440.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.ant_1.7.0.v200803061910,reference:file:C:/Lang/eclipse/plugins/org.apache.commons.el_1.0.0.v200806031608.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.commons.logging_1.0.4.v20080605-1930.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.jasper_5.5.17.v200806031609.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.log4j_1.2.13.v200806030600.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.lucene_1.9.1.v20080530-1600.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.lucene.analysis_1.9.1.v20080530-1600.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.xerces_2.9.0.v200805270400.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.xml.resolver_1.2.0.v200806030312.jar,reference:file:C:/Lang/eclipse/plugins/org.apache.xml.serializer_2.7.1.v200806030322.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.ant.core_3.2.0.v20080529.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.commands_3.4.0.I20080509-2000.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.databinding_1.1.1.M20080827-0800b.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.expressions_3.4.0.v20080603-2000.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.filesystem_1.2.0.v20080604-1400.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.filesystem.win32.x86_1.1.0.v20080604-1400.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.jobs_3.4.0.v20080512.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.resources_3.4.1.R34x_v20080902.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.resources.compatibility_3.4.0.v20080604-1400.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.resources.win32.x86_3.4.0.v20071204.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar@start,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.runtime.compatibility_3.2.0.v20071008.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610,reference:file:C:/Lang/eclipse/plugins/org.eclipse.core.variables_3.2.100.v20080529-1300.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.app_1.1.0.v20080421-2006.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.http.jetty_1.1.0.v20080425.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.http.registry_1.0.100.v20080427-0830.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.http.servlet_1.0.100.v20080427-0830.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.jsp.jasper_1.0.100.v20080427-0830.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20080427-0830.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.preferences_3.2.201.R34x_v20080709.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.help_3.3.101.v20080702_34x.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.help.base_3.3.101.M20080728_34x.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.help.ui_3.3.101.M20080715_34x.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.help.webapp_3.3.101.M20080805_34x.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.jface_3.4.1.M20080827-2000.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.jface.databinding_1.2.1.M20080827-0800a.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.swt_3.4.1.v3449c.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.ui_3.4.1.M20080910-0800.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.ui.forms_3.3.101.v20080708_34x.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.ui.views_3.3.0.I20080509-2000.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.ui.workbench_3.4.1.M20080827-0800a.jar,reference:file:C:/Lang/eclipse/plugins/org.eclipse.update.configurator_3.2.201.R34x_v20080819.jar,reference:file:C:/Lang/eclipse/plugins/org.junit4_4.3.1,reference:file:C:/Lang/eclipse/plugins/org.mortbay.jetty_5.1.14.v200806031611.jar

steht nur noch das hier drin:



läuft beim Build-Prozess via Ant irgendwas falsch? Oder komm ich noch irgendwie anders an die Pfadinformationen der verwendeten Plugins/Libaries der Eclipse RCP Anwendung ran??

Gruß
Alex

[update]
Okay, ich hab mich geirrt. Beim exportieren der Anwendung klappts auch nicht. Da enthält osgi.bundles eine genaus kurze, mich mich nicht nutzbare Information...
 
Zuletzt bearbeitet von einem Moderator:
T

tuxedo

Gast
Okay, ich glaub ich hab selbst ne Lösung gefunden:

Ich hab 2 Varianten:

1) Für die Entwickler unseres Programms: Starten aus der IDE heraus
2) Für Tester die das Projekt testweise exportieren und den Nightly-Build via Ant

Damit ich beide Varianten unterscheiden kann, ziehe ich "osgi.bundles" heraus. Beginnt dies mit "reference", so wird aus der IDE heraus gestartet, und ich kann verfahren wie bisher.

Beginnt dies NICHT mit "reference", so wurde die Anwendung exportiert oder von ANT gebaut. Dann gehe ich wie folgt vor:

Ich nehme "eclipse.home.location", welches auf das Basisverzeichnis der RCP Anwendung zeigt, hänge "plugins" als Unterordner an, und enumeriere über den Verzeichnisinhalt. Ab hier kann ich weitermachen wie in der ersten Variante: Inhalt parsen und Classpath für meine zu startende Anwendung aufbauen...

Abgesehen von einer saubereren Implementierung der ganzen Sache (muss das bis heute Abend erstmal vorläufig gefixt haben...): Gegenvorschläge?

- Alex
 

Wildcard

Top Contributor
Nimm Buckminster zum Bauen. Das Plugin resolved dann die benötigten Bundles aus der Platform und stellt sie dir in ant als property zur Verfügung. Das auflösen und kopieren aller Abhängigkeiten lässt sich dann auf ein 5 Zeilen Ant Script reduzieren (das man nichtmal mehr selbst aufrufen muss).
Ich kann dir dazu genauere Informationen geben, da ich genau das gerade auch umgesetzt habe, müsste aber genaueres über dein Setup wissen
 
T

tuxedo

Gast
Dass Ant nicht DIE Lösung ist weiß ich. Nur besteht das Projekt aus ca. 60 Unterprojekten. Zur Zeit arbeiten wir dran Maven einzusetzen um die unzahligen Abhängigkeiten sauber aufzulösen.

Aber mal davon abgesehen: Mein obiger Ansatz hat soweit funktioniert. War ne Sache von nur 10min.

Gruß und danke für den Tipp,
Alex
 

Wildcard

Top Contributor
Für Eclipse Projekte/OSGi Bundles würde ich dir wirklich empfehlen dir Buckminster anzuschauen, damit ersparst du dir sehr viel Ärger und Arbeit. Auch Eclipse wird damit gebaut und ausserdem ist es auch zu Maven, Ant und vielen anderen Dingen kompatibel.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
Rudolf External Libs dauerhaft in Eclipse einbinden Plattformprogrammierung 3
G RCP Eclipse UI Forms Plattformprogrammierung 10
musiKk RCP Eclipse: Speichern von Spaltenbreiten Plattformprogrammierung 9
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
P Eclipse Help: Wie Links zu anderer Hilfeseite setzen ? Plattformprogrammierung 5
F Eclipse EMF Modelltransformation Plattformprogrammierung 3
tfa RCP Compilereinstellungen festlegen bei Eclipse-Batch-Build Plattformprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben