gpt4 book ai didi

java - 如何在Windows上正确调用JAVA中的CMD文件?

转载 作者:行者123 更新时间:2023-12-02 08:01:03 24 4
gpt4 key购买 nike

我有如下所示的示例 java 代码。

    String testEfdDirectoryPath="D:\\test";
String efdExecutable = "test.cmd";
File executableFile = new File(testEfdDirectoryPath, efdExecutable);
ProcessBuilder pb=new ProcessBuilder();
$$pb.command("cmd.exe","/C",executableFile.toString());$$
pb.directory(new File(testEfdDirectoryPath));
Process p=pb.start();
int code=p.waitFor();
System.out.print(code);

在 test.cmd 中,实际上调用了另一个 java 应用程序。除非我将 $$ 标记行更改为以下内容以重定向其输出,否则无法启动另一个 java 应用程序。

    pb.command("cmd.exe","/C",executableFile.toString(),">output.txt");

大家有什么想法吗?提前致谢。 :)

最佳答案

您的子进程是否产生大量输出(超过几千字节)?如果是这种情况,您需要读取该流程的输出。你应该尝试:

  1. 启动进程
  2. 关闭进程的stdin,因此pb.getOutputStream().close()
  3. 重复读取pb.getInputStream()和错误流

这可能在一个线程或多个线程中是可能的。无论如何,您应该将上面的解释作为关键字列表,并尝试搜索您可以信任的示例代码片段,最好是从成功完成此类操作的开源应用程序中搜索。

也许http://commons.apache.org/exec/可以帮助你。

关于java - 如何在Windows上正确调用JAVA中的CMD文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8890414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com