RCP Problem mit Umsetzen des Workspace unter Win

dzim

Top Contributor
Hallo zusammen,

in den letzten Tagen bin ich über ein Problem mit der InstanceLocation (Platform.getInstanceLocation()) gestoßen.
Ich habe eine eigene Routine für das Setzen des Workspaces geschrieben (was, am Rande erwähnt, nur geht, wenn die Applikation vorher mit -data @noDefault gestartet wurde).
So weit so gut...
Das Problem aber ist folgendes: Unter unser Windows-Umgebung (Server...) wird für den Workspace-Lock, die Logs, die Dialog-Settings - kurzum alles was die Anwendung so während ihres Lebenszyklus in den Workspace schreibt, in ein völlig falsches Verzeichnis geschrieben.
Der Pfad wäre Beispeilhaft: "C:\Document and Settings\dzim\Desktop\my-workspace" und aufgrund der URL der InstanceLocation - soweit bin ich sicher - aus dem anscheinend viele ein location.getURL().getFile(), folgender String entsteht: "C:\Document%20and%20Settings\dzim\Desktop\my-workspace".
Während ich in meiner Anwendung darauf Achte, das zu umgehen, scheinen viele andere Teile der Eclipse-API das nicht.

Kennt ihr das Problem, wisst ihr, wie man es umgehen kann?

Vielen Dank im voraus!!!
Daniel
 

dzim

Top Contributor
Das Problem ist unabhängig vom Betriebssystem...
Sobald ein Leerzeichen im Pfad ist, wird ein %20 eingefügt.
Mir ist es insofern schleierhaft, als ich die grundlegende Routine aus der IDEApplication selbst kopiert habe - und für die funktioniert es ja...
 

dzim

Top Contributor
Nach einigem Suchen ist des Rätsels Lösung gefunden:
"new File(fullPath).getURI().toURI().toURL()" --> das toURI sorgt dafür, das einige Zeichen, wie z.B. das Leerzeichen, maskiert werden.
"new File(currentWS).toURL()" ist zwar deprecated, bringt aber aus Eclipse-Sicht das richtige Ergebnis. Schlußendlich müssen alle Anfragen an die InstanceLocation von "new File(instanceLoc.getURL().toURI())" auf "new File(instanceLoc.getURL().getFile())" geändert werden, und schon erhält man die korrekten Pfade (man könnte hier auch statt File die Path-Klasse verwenden, das Prinzip bleibt das selbe).

Wieder was dazugelernt. Und nun bin ich in der großen Welt der Eclipse-API wieder ein Paar Erfahrungen reicher (ich hätte mir das hier gern erspart...).

Ich hoffe, dass es euch hilft, solltet ihr je in eine Ähnliche Lage geraten.
 

Wildcard

Top Contributor
URIs müssen encoden, das ist Sinn der Sache. new File(fullPath).getURI().toURI().getPath gibt dir die dekodierte Variante (schließlich interessiert du dich ja nur für die Path Portion der URI).
Sehe ich jetzt weniger als ein Eclipse Spezifika, URI wird sehr häufig falsch verwendet.
 

dzim

Top Contributor
Kann sein, ich hab mir darum nur vor diesem Vorkommnis nie wirklich Gedanken gemacht...
Danke für den Tipp mit dem getPath()!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Problem bei Einbinden einer DLL in Java-Projekt Plattformprogrammierung 4
Wurstsemmel RCP SWT-Problem: Programm sucht Cocoa-Bibliothek unter Windows Plattformprogrammierung 6
Shams Antbuild - Problem bei OSGi Anfängertutorial Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
J JNA Implimentierungs Problem Plattformprogrammierung 0
Shams Problem bei der Knopflerfischinstallation Plattformprogrammierung 2
J Charset-Problem nach Plugin-Export Plattformprogrammierung 1
TheWhiteShadow RCP Problem mit Plugin Interaktion Plattformprogrammierung 6
D Eclipse_Visual Editor Problem Plattformprogrammierung 2
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
dzim OSGi Problem beim Verwenden von Declaratice Services Plattformprogrammierung 18
T netbeans problem? Plattformprogrammierung 4
dzim RCP Problem mit MenuManager Plattformprogrammierung 3
H RCP Problem mit Extension Schema Plattformprogrammierung 10
R JFace Databinding Problem Plattformprogrammierung 5
F Ecilpse plugin und MWE Workflow: classpath Problem Plattformprogrammierung 12
W Wahrscheinlich triviales Problem, aber komm nicht weiter Plattformprogrammierung 7
K SelectionListener / SelectionProvider Problem Plattformprogrammierung 2
M Xpand Anfäger Problem Plattformprogrammierung 3
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
B PreferencesService Problem Plattformprogrammierung 2
K EMF/Teneo EMap Problem Plattformprogrammierung 6
K Problem mit EMF/Teneo, GregorianCalendar, Date, Hibernate Timestamp Plattformprogrammierung 6
L RCP TreeViewer Listener Problem Plattformprogrammierung 12
C target platform problem Plattformprogrammierung 2
K NoClassDefFoundError Problem Plattformprogrammierung 24
F Eclipse: Plug-In mit Ecoding Problem Plattformprogrammierung 7
O Problem mit relativen Pfaden in einem RCP-Plugin Plattformprogrammierung 5
dzim Problem beim neuanlegen von Composites Plattformprogrammierung 4
hdi Problem bei Eclipse Plugin Export Plattformprogrammierung 9
K Bild Problem in exportierter RCP Anwendung Plattformprogrammierung 5
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
D Problem mit Synth Painter und OSGi (Equinox) Plattformprogrammierung 8
G plugin.xml Problem Plattformprogrammierung 4
I SWT Popup-Menu Problem (Position) Plattformprogrammierung 4
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T RCP 3.6 Workspace Plattformprogrammierung 7
dzim Workspace & Preference-Scopes (mal wieder) Plattformprogrammierung 7
M Plattformunabhängig Ordner und Datei in Workspace anlegen Plattformprogrammierung 12
T Liste mit allen Projekten aus Workspace Plattformprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben