我试图通过使用以下代码在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应用程序没有按预期弹出?
答案 0 :(得分:14)
要与ProcessBuilder一起使用,您必须将命令分开:
final List<String> commands = new ArrayList<String>();
commands.add("cmd.exe");
commands.add("/C");
commands.add("start");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.start();
答案 1 :(得分:9)
您需要使用start命令。实际上,即使我没有看到新的命令提示符弹出,但您可以检查是否确实使用cmd.exe
启动了新的task manager
。
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start");
尽管如此,使用Runtime.exec()
可以实现相同的功能,这实际上会弹出一个新的命令提示符。
Runtime.getRuntime().exec("cmd.exe /C start");
答案 2 :(得分:0)
如果你是 windows 使用这个命令
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "ping -n 3 google.com");