【发布时间】:2012-01-01 16:30:17
【问题描述】:
我非常了解如何通过 Runtime.getRuntime().exec(command) 执行命令并处理输出,但这非常有限。
以 Windows 为例(特别是 Vista,但这无关紧要)。
如何通过 Java 中的 ProcessBuilder(或任何类)执行诸如“echo”、“cd”、“md”、“rd”之类的命令以及在 cmd.exe 内部的任何其他命令?
【问题讨论】:
-
ProcessBuilder 是正确的类 (download.oracle.com/javase/7/docs/api/java/lang/…)。有什么具体的事情你在完成时遇到了困难吗?
-
值得注意的是,您列出的每个命令都可以通过 Java 库完成。我知道您可能没有所需的所有功能,但我建议您尽可能使用 Java 库,仅在必要时使用 ProcessBuilder。
-
@glowcoder 当然可以。它们只是基于实际命令提示符而不是系统本身的命令示例。我不会使用任何这些特定命令来执行实际的编程任务。那将是愚蠢的。 Java有能力这样做。如果你必须知道,我只需要 Java 能够从我正在制作的命令外壳包装器中执行所有/大多数本机命令。
-
@KyleMahan 是的。制作命令外壳包装器。基本上是由 Java 和 GUI 运行的命令提示符。主要用于某些我无法访问终端的特定 UNIX 机器上。
-
对于其他查看此内容的人,您可以制作自定义包装器或使用 Apache Commons exec:commons.apache.org/proper/commons-exec/tutorial.html