我找到了几个通过 Java 类运行 cmd 命令的代码片段,但我无法理解它。
这是打开cmd的代码
public void excCommand(String new_dir){
Runtime rt = Runtime.getRuntime();
try {
rt.exec(new String[]{"cmd.exe","/c","start"});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我发现了一些其他链接用于添加其他命令,例如 cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java
任何人都可以帮助我了解如何 cd 一个目录,例如:
cd C:\Program Files\Flowella
然后在该目录上运行其他命令?
原文由 Reham 发布,翻译遵循 CC BY-SA 4.0 许可协议
从不同目录运行进程到 Java 程序的工作目录的一种方法是更改目录,然后在同一命令行中运行进程。您可以通过获取
cmd.exe
运行命令行(例如cd some_directory && some_program
)来执行此操作。以下示例更改为不同的目录并从那里运行
dir
。不可否认,我可以只dir
那个目录而不需要cd
到它,但这只是一个例子:另请注意,我正在使用
ProcessBuilder
来运行命令。除此之外,这允许我通过调用redirectErrorStream(true)
将进程的标准错误重定向到它的标准输出。这样做只给我一个可供阅读的流。这在我的机器上提供了以下输出: