使用ProcessBuilder启动CMD
我试图通过使用以下代码在Windows中启动CMD应用程序,但它不能按预期工作。 来自不同网站的几个示例显示,“cmd”作为ProcessBuilder构造中的参数应该有效。
我需要做些什么才能让我的Java应用程序在Windows中打开CMD应用程序?
public class JavaTest { public static void main(String[] args) { ProcessBuilder pb = new ProcessBuilder("cmd"); try { pb.start(); System.out.println("cmd started"); } catch (IOException e) { System.out.println(e.getMessage()); } } }
当我尝试使用不存在的应用程序时,它实际上会输出错误,这意味着它实际上运行“CMD”。 但CMD应用程序没有按预期弹出?
您需要使用start命令。 实际上,即使我没有看到弹出的新命令提示符,但您可以检查是否确实使用您的task manager
启动了新的cmd.exe
。
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start");
但是,使用Runtime.exec()
可以实现相同的function,这实际上会弹出一个新的命令提示符。
Runtime.getRuntime().exec("cmd.exe /C start");
要与ProcessBuilder一起使用,您必须将命令分开,如下所示:
final List commands = new ArrayList (); commands.add("cmd.exe"); commands.add("/C"); commands.add("start"); ProcessBuilder pb = new ProcessBuilder(commands); pb.start();
- 使用Java在命令行上打印的明文
- 使用CMD作为过程
- 从使用Inno Setup和maven创建的本机javafx应用程序写入控制台
- 如何在java程序中使用mkdir和rmdir命令
- 使用int而不是String:public static void main(int args)
- java.lang.UnsatisfiedLinkError:在java运行的java.libary.path中没有lwjgl
- Java jar-Archive工具 – 设置包含内容的文件夹的路径
- 在Windows控制台中从Java代码问题中打印出unicode
- 在弹性搜索中使用service install命令“JAVA_HOME指向无效的Java安装问题”