我正在编写一个需要执行shell命令的java程序,所以我编写了一个函数,它将命令作为字符串执行(即:" mkdir~ / Folder1")并执行该命令与壳。这是功能:
private static void shell(String cmd)
{
try
{
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
pr.waitFor();
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while ((line = buf.readLine()) != null) {
System.err.println(line); // show any errors returned by the command executed on the error console
}
} catch (Exception ee) {}
}
由于一些奇怪的原因,这个函数没有执行任何命令。我做错了吗?执行shell命令似乎很简单,但它无法正常工作。
答案 0 :(得分:1)
我认为你传递的命令字符串就像某些mkdir命令一样, “mkdir C:\ some \ folder \ path”。
mkdir不是Windows路径中的二进制文件,它是命令行的参数。 使用命令字符串“cmd.exe / c mkdir C:\ some \ folder \ path”
然后它应该可以正常工作。
答案 1 :(得分:0)
您的程序可能没有足够的权限访问根目录。尝试在您的主目录中创建一个文件夹,例如下面给出的是工作代码:
https://www.example.com