Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java运行时执行器_Java_Command_Runtime_System_Exec - Fatal编程技术网

Java运行时执行器

Java运行时执行器,java,command,runtime,system,exec,Java,Command,Runtime,System,Exec,我正在尝试用Java中的system exec做一些事情 Runtime.getRuntime().exec(command); 令人惊讶的是,与路径、目录和文件相关的所有内容都不能正常工作 我不明白为什么,只是想知道是否有任何替代方案?替代方案是使用类,它有一个更干净的接口,但您的主要问题可能与操作系统如何处理命令行有关,Java对此没有多少帮助。替代方案是使用类,它有一个更简洁的界面,但您的主要问题可能与操作系统如何处理命令行有关,Java对此没有多少帮助。如上所述,cd是一个内置的she

我正在尝试用Java中的system exec做一些事情

Runtime.getRuntime().exec(command);
令人惊讶的是,与路径、目录和文件相关的所有内容都不能正常工作


我不明白为什么,只是想知道是否有任何替代方案

替代方案是使用类,它有一个更干净的接口,但您的主要问题可能与操作系统如何处理命令行有关,Java对此没有多少帮助。

替代方案是使用类,它有一个更简洁的界面,但您的主要问题可能与操作系统如何处理命令行有关,Java对此没有多少帮助。

如上所述,cd是一个内置的shell。i、 它不是一个可执行文件。您可以使用以下方法确定这一点:

$ which cd
cd: shell built-in command
由于它不是独立的可执行文件,
Runtime.exec()
将无法对其执行任何操作

您最好编写一个shell脚本来完成特定于shell的工作(例如更改工作目录),然后使用
Runtime.exec()
简单地执行该shell脚本。您可以在脚本中设置路径变量等,让Java简单地执行脚本


一件引人注目的事情是,您必须使用脚本的stdout/stderr(即使您将其扔掉)。如果您不正确地执行此操作,您的流程可能会阻塞。有关更多详细信息,请参阅。

如上所述,cd是一种内置的shell。i、 它不是一个可执行文件。您可以使用以下方法确定这一点:

$ which cd
cd: shell built-in command
由于它不是独立的可执行文件,
Runtime.exec()
将无法对其执行任何操作

您最好编写一个shell脚本来完成特定于shell的工作(例如更改工作目录),然后使用
Runtime.exec()
简单地执行该shell脚本。您可以在脚本中设置路径变量等,让Java简单地执行脚本


一件引人注目的事情是,您必须使用脚本的stdout/stderr(即使您将其扔掉)。如果您不正确地执行此操作,您的流程可能会阻塞。有关详细信息,请参阅。

exec()方法可以接受三个参数。第三个是子流程应该用作其工作目录的目录。无论如何,这解决了“cd”问题。

exec()方法可以有三个参数。第三个是子流程应该用作其工作目录的目录。无论如何,这解决了您的“cd”问题。

告诉我们您正在尝试做什么。那么只有我们才能给我适当的帮助“
Runtime.getRuntime().exec(command);
令人惊讶的是……”。看见另外,为了更快地获得更好的帮助,请发布一个。为什么不使用J2SE类和方法访问文件系统?
cd
不起作用。这不是可执行文件,而是shell的函数。@Thilo谢谢!CDS的替代方案是什么?告诉我们您正在尝试做什么。那么只有我们才能给我适当的帮助“
Runtime.getRuntime().exec(command);
令人惊讶的是……”。看见另外,为了更快地获得更好的帮助,请发布一个。为什么不使用J2SE类和方法访问文件系统?
cd
不起作用。这不是可执行文件,而是shell的函数。@Thilo谢谢!CDW的替代方案是什么?谢谢。我会设法弄明白的。shell脚本不是一个好主意我需要streamsCan你重新设计。你的评论?好的,谢谢。我会设法弄明白的。shell脚本不是一个好主意我需要streamsCan你重新设计。你的评论?