【问题标题】:Does cmd always open a new window when you md当你 md 时,cmd 是否总是打开一个新窗口
【发布时间】:2013-08-03 02:47:17
【问题描述】:

我正在进行一个 Java 项目,其中一部分是调用 Windows cmd 来创建一个目录。我的代码目前如下所示:

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

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

1) 我能否阻止这个额外的 cmd 实例(从新目录开始),或者

2) 我可以关闭这个额外的 cmd 窗口而不引起其他问题吗? (我听说杀死 cmd 可以破坏机器上的其他东西。)

【问题讨论】:

  • 您不需要运行外部命令来创建目录。使用 API。

标签: java windows cmd mkdir


【解决方案1】:

你应该使用:

    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);

【讨论】:

    【解决方案2】:

    为什么不用File 创建目录?

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

    【讨论】:

    • 我们应该开始推荐使用 NIO 的方式。 Files.createDirectory(Path, FileAttributes)
    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2017-12-10
    • 2014-05-31
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多