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 目录(文件目录)将目录转换为规范文件。如何使用绝对文件路径?
我也尝试了破解解决方案
pb.directory(new File("/asr1/work/oguz/rt/adaptMLLR2/0/"){
public File getCanonicalFile(){
return this.getAbsoluteFile();
}
public String getCanonicalPath() {
return this.getAbsolutePath();
}
});
这也不起作用。
我通过在 bash 脚本中添加 cd /server1/.. 行来解决我的问题.. 并删除了 pd.directory(..) 行。但是这个问题(为什么我不能将 pd.directory(..) 与 absolutePath 一起使用)尚未得到解答......?