我想使用这段代码通过 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创建文件夹,我需要这样做。谢谢。
最佳答案
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 中调用外部进程? (如果你要指定一个奇怪的要求,它有助于提供更多关于它的上下文......)
关于通过控制台制作文件的Java错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537939/