我想使用此代码通过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命令shell可以理解的命令.
所以你可以运行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内部可以调用外部进程? (如果你要指定一个奇怪的要求,它有助于给它一些更多的背景……)