ProcessBuilder pb = new ProcessBuilder("pwd");
pb.directory(new File("/server1/work/uz/rt/adapt/0/"));
Process s = pb.start();
Я ожидал, что вывод будет /server1/work/uz/rt/adapt/0/
, но вместо этого:
/work/uz/rt/adapt/0/
/work/uz/rt/adapt/0/
и /server1/work/uz/rt/adapt/0/
эквивалентны (смонтированы в одном месте, /work/.. - правильный путь, а /server1/work/.. - смонтированный), но мне нужно работать под /server1/work/uz/rt/adapt/0/
, потому что некоторые другие серверы работают только по этому пути .
Как сделать /server1/work/uz/rt/adapt/0/
текущим путем?
ДРУГИМИ СЛОВАМИ
почему общедоступный каталог ProcessBuilder (каталог файлов) преобразует каталог в канонический файл. Как я могу использовать абсолютный путь к файлу??
Я также пробовал взломать Soln'
pb.directory(new File("/asr1/work/oguz/rt/adaptMLLR2/0/"){
public File getCanonicalFile(){
return this.getAbsoluteFile();
}
public String getCanonicalPath() {
return this.getAbsolutePath();
}
});
который также не работал.
Я решил свою проблему, добавив строку cd /server1/.. в сценарий bash.. и удалив строку pd.directory(..). НО эта проблема (почему я не могу использовать pd.directory(..) с absolutePath ) еще не решена...???
pwd -L
? Я считаю, чтоpwd
по умолчанию разыменовывает символические ссылки. - person Borealid   schedule 22.08.2010