gpt4 book ai didi

java - 从 Java 调用时 OS X 命令行应用程序无法找到目录

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:42 25 4
gpt4 key购买 nike

如果我在终端中运行它,它工作正常:

lsof -F n +D /some/directory

但是当我从 Java 运行同样的东西时却没有:

                    Process lsof = new ProcessBuilder("lsof", "-F", "n", "+D", "'/some/directory'").start();
lsof.waitFor();

if (lsof.exitValue() != 0) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(lsof.getErrorStream()));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}

log.warning("STDOUT:\n" + sb.toString());
} finally {
if (reader != null) {
reader.close();
}
}
}

当从 Java 调用时,它返回:

STDOUT:
lsof: WARNING: can't stat('/some/directory'): No such file or directory
lsof 4.85
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhlnNoOPRtUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.

谁能解释一下为什么吗?

最佳答案

new ProcessBuilder("lsof", "-F", "n", "+D", "'/some/directory'")
^ ^

删除 /some/directory 周围的单引号。它们被传递到 lsof 程序并被解释为路径名的一部分。

关于java - 从 Java 调用时 OS X 命令行应用程序无法找到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com