2016-06-16 19 views
0

Ich habe den ProcessBuilder zum aktuellen Verzeichnis einer eigenständigen Java-Klasse verwendet und es hat mir den relativen Projektort korrekt angezeigt. Aber wenn ich den gleichen Code aus einem Servlet ausgelöst, kehrte er mir den Wert von tmy Eclipse-InstallationsverzeichnisProcessBuilder gibt das Eclipse-Installationsverzeichnis zurück, wenn es vom Servlet ausgelöst wird

Kann jemand mir helfen, mit diesem seltsamen Verhalten von Eclipse

ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "chdir"); 
builder.redirectErrorStream(true); 
Process p = builder.start(); 

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line = ""; 
StringBuffer sb = new StringBuffer(); 
while((line = br.readLine()) != null){ 
    System.out.println(line); 
} 
p.waitFor(); 

Antwort

0

Verstanden ..... .. Es war nur, dass ich den obigen Code in einem dynamischen Webprojekt ausgeführt habe, das eine Kopie des Projekts im Ordner .metadata erstellt und diese Kopie schließlich in Runtime ausführt. Das war der Grund dafür, dass ich beim Ausführen des Codes in Eclipse einen Pfad für den Speicherort der Projektkopie und nicht den ursprünglichen Pfad erhalten habe.