[英]How to invoke a CMD file in JAVA correctly on windows?
我有以下示例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");
你们有什么想法吗? 提前致谢。 :)
您的子进程是否会产生大量输出(超过几千字节)? 如果是这种情况,则需要从该过程中读取该输出。 你应该试试:
stdin
,所以pb.getOutputStream().close()
pb.getInputStream()
和错误流 这可能在一个线程或多个线程中。 无论如何,您应该将上面的解释作为关键字列表,并尝试搜索您可以信任的示例代码段,最好是从成功执行此类操作的开源应用程序中搜索。
也许http://commons.apache.org/exec/可以帮到你。
Windows无法直接执行脚本; 当您双击.cmd文件时,它实际上在cmd.exe中打开该文件。 所以试试cmd.exe E:\\\\test\\\\test.cmd
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.