java - 使用 Java 运行时执行命令

标签 java process runtime

我成功地使用 AutoIt 来执行命令,但我想我可以通过运行时获得更稳定的实现。这样我就知道命令将始终被执行,并且不会被中断异常和其他随机垃圾抛出。运行时是否有一些我不知道的东西不允许连续执行命令?它是否没有存储先前命令的输出的内存,即它不是在持久命令行中运行吗?

以下命令导航到文件夹并执行 Maven 脚本。我该如何让它发挥作用?如果后面还有 10 多个命令,它们会在同一个进程中执行吗?

sendCommand("cmd.exe cd homepath/plugins");
sendCommand("mvn archetype:generate -DarchetypeCatalog=file://homepath/.m2/repository");

private static void sendCommand(String text) throws IOException {
    Runtime.getRuntime().exec(text);
}

最佳答案

Runtime.exec() 返回一个 Process 实例。在此对象上调用 waitFor() 以等待其完成,然后再运行下一个命令。您可以通过 Process 的 getInputStream()/getOutputStream() 方法与其进行通信。

另请阅读 Javadoc。对于 Runtime.exec,它表示“在单独的进程中执行指定的字符串命令。”

关于java - 使用 Java 运行时执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617430/

相关文章:

java - Adwords API 未返回 ExpandedTextAds 的最终到达网址

winapi - 获取完整的运行过程列表(Visual C++)

gcc - 在运行时确定 ARM Cortex M3 RAM 大小

Delphi - 在现有表格上分配 OnClose 表格

java - 在运行时编辑类

java - 在 TextView 和 EditText 之间切换

java - Guice @Nullable 注解

java - 期待 ANTLR 中的 NEWLINE

c# - 从 Threadpool 工作线程启动进程(并在需要时等待)

c - 如何在c中创建proc树