我成功地使用 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/