2016-09-20 12 views
0

Ich mache mein eigenes Eclipse-Plugin, aber lief in unerwartetes Verhalten.Dateierstellung in Eclipse auf Linux hängt davon ab, wie es Eclipse gestartet wird

Wenn Eclipse-von Befehlszeile:

$ cd /home/user/downloads;/home/user/eclipse/eclipse 

und ich rufe Funktionalität, die eine neue Datei außerhalb des Arbeitsbereichs erstellt:

new java.io.File("home/user/folder/file") 

es wird eine neue Datei mit dem Pfad zurück:

/home/user/downloads/home/user/folder/file 

Also fügt es den Pfad des Befehls zum Ändern des Verzeichnisses hinzu, als ich Eclipse gestartet habe.

Wenn dies absichtlich ist, wie soll ich meine Datei erstellen?

Antwort

1

Es gibt keine solche Klasse als java.net.File vermutlich meinen Sie java.io.File

Der Weg home/user/folder/file ist ein relativer Pfad - das ist es in das aktuelle Verzeichnis ist relativ was auch immer das sein mag. Also, wenn Ihr aktuelles Verzeichnis /home/user/downloads der vollständige Dateipfad ist, wird /home/user/downloads/home/user/folder/file

, wenn Sie diese Sie einen absoluten Pfad angeben muss nicht passieren wollen - auf Unix, Linux und Mac, die ein Pfad mit / Start ist so

new java.io.File("/home/user/folder/file"); 

(beachten Sie die führende /) werden Sie mit diesem genauen Pfad einer Datei geben.

+0

java.net.file war in der Tat ein Tippfehler und sollte java.io.file sein. Die Lösung hat meinen Gedanken gekreuzt, aber ich habe sie ignoriert, weil sie als absoluter Pfad funktioniert hat, ohne die Eclipse von der Befehlszeile aus zu starten. Aber ich werde es trotzdem versuchen, danke – Staalk

+0

Der Wert des aktuellen Verzeichnisses kann variieren, je nachdem, wie die Dinge laufen, so ist es am besten, wenn möglich relative Pfade zu vermeiden. –

Verwandte Themen