cmd时cmd总是打开一个新窗口

我正在一个Java项目中,其中一部分是调用Windows cmd来创build一个目录。 我的代码目前看起来像这样:

Runtime rt = Runtime.getRuntime(); String command; command = "cmd.exe /c start mkdir \"C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\" &&exit"; rt.exec(command); 

这工作正常(创build文件夹),但它产生了一个额外的cmd实例。 (我原来join了“&& exit”,认为它会消除额外的窗口,但是现在我意识到这是不必要的代码。)

1)我可以防止这个额外的cmd实例(在新目录中开始),或

2)我可以closures这个额外的cmd窗口而不会造成其他问题吗? (我听说杀死cmd可以在机器上打破其他东西。)

你应该使用:

  File file = new File("C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\""); if(!file.exists()) { file.mkdir(); } 

代替。 但是,如果要将命令调入cmd而不创建新命令,则不应调用“cmd.exe / c start”。 你可以检查一下,如果你从java之外运行相同的命令,它也会启动一个新的cmd。 尝试这个:

 Runtime rt = Runtime.getRuntime(); String command; command = "mkdir \"C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\" &&exit"; rt.exec(command); 

你为什么不用File创建dir?

 new File("C:\\my\\path\\myDir").mkdir();