RCP Resource in User home speichern

G

Gast2

Gast
Hallo zusammen,

ich würde gerne eine Resource ins User Home Verzeichnis speichern
Bekomme aber immer eine MalformedURLException Exeception weiß jemand was falsch ist?
Java:
 URI uri = URI.createURI(System.getProperty("user.home") + "\\save.xmi");
       Resource resource = resSet.createResource(uri);

Java:
java.net.MalformedURLException: unknown protocol: c
	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at org.eclipse.emf.ecore.resource.impl.URIHandlerImpl.createOutputStream(URIHandlerImpl.java:104)
	at org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.createOutputStream(ExtensibleURIConverterImpl.java:339)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:989)
	at blutmessung.ui.Activator.save(Activator.java:45)
	at blutmessung.ui.jobs.SaveJob.run(SaveJob.java:19)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
 

dzim

Top Contributor
Vielleicht ein Problem mit Leerzeichen in der URI?
Ansonsten - wahrscheinlich nicht falsch, aber es wundert mich - würde ich vielleicht die Sequenz "\\save.xmi" gegen "/save.xmi" austauschen. Ich weiß gerade nicht ob ein Platformabhängiger Char in einer URI wirklich etwas zu suchen hat.
 
N

nillehammer

Gast
Da stehts drinnen:
Code:
java.net.MalformedURLException: unknown protocol: c
Du bekommst wahrscheinlich einen Pfad "c:/irgend/ein/Pfad" aus dem System-Propertie. Bei URIs ist der erste Doppelpunkt das Trennzeichen für das Protokoll (z.B. http:// oder ftp://). Bei der Erzeugung Deiner URI denkt er wegen des Doppelpunkts hinder dem Laufwerksbuchstaben, das sei das Protokoll. Und ein Protokoll "c" gibt es eben nicht.

Da aus Deinem Code nicht ersichtlich ist, wofür Du die URI brauchst, hier nur ein paar allgemeine Tipps, die den Fehler beseitigen könnten:
- Vielleicht brauchst Du garkeine URI, sondern kannst mit File oder FileInputStream/FileOutputStream arbeiten.
- Schreibe ein "file://" vor Deinen URI-String
- Wie schon von dzim geschrieben, nimm forward-Slashes. Backslashes haben in URIs nix zu suchen.
 

Ähnliche Java Themen


Oben