使用该方法
public Process exec(String command, String[] envp, File dir) throws IOException我应该打印命令dir [filepath]的输出,但使用的是Java,我的问题是,为什么我必须输入命令参数(cmd /c dir),而不仅仅是(dir)
如果我在命令提示符下输入dir [filepath],它可以工作,但在Java语言中不行。
发布于 2021-03-23 07:36:29
exec()执行新的进程,为此你需要一个可执行文件来运行(也就是一些.exe文件,如果我们谈论的是Windows)。但是没有"dir.exe“这个词。"dir“是Windows命令提示符cmd.exe的内置命令,因此要运行它,您需要运行cmd.exe并将这样的命令传递给它。
相反,例如,在Linux中,ls是单独的可执行文件,因此您可以直接执行类似ls /home/myuser的操作,而不是sh -c 'ls /home/myuser'。
https://stackoverflow.com/questions/66755212
复制相似问题