【问题标题】:Java error in making file through console通过控制台生成文件时出现 Java 错误
【发布时间】:2015-04-16 18:11:37
【问题描述】:

我想使用这段代码通过java中的cmd创建一个文件

    Runtime.getRuntime().exec("mkdir C:\\Users\\Nick\\test");

我得到了这个烦人的错误:

    Exception in thread "main" java.io.IOException: Cannot run program "mkdir": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at LFID.main(LFID.java:11)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more

我不知道是什么原因造成的,所以请帮忙。

顺便请不要告诉我如何不通过cmd创建文件夹,我需要这样做。谢谢。

【问题讨论】:

  • 尼克,这存在吗?你有权限吗?

标签: java runtime mkdir


【解决方案1】:

mkdir 不是可以作为单独进程启动的独立可执行文件 - 它是 Windows 命令外壳可以理解的命令。

所以你可以运行cmd.exe /c mkdir ...

Runtime.getRuntime().exec("cmd.exe /c mkdir c:\\Users\\Nick\\test");

或者:

Runtime.getRuntime().exec(
    new String[] { "cmd.exe", "/c" "mkdir" "c:\\Users\\Nick\\test"});

...但我仍然建议只使用File.mkdir...当您可以在 Java 中执行此操作时,为什么要调用外部进程? (如果你要指定一个奇怪的要求,它有助于提供更多的上下文......)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2012-05-28
    • 2015-08-03
    • 2013-06-17
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多