通过控制台制作文件时出现Java错误
我想使用此代码通过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.(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中可以调用外部进程? (如果你要指定一个奇怪的要求,它有助于给它一些更多的背景……)