java执行shell命令

时间:2016-11-27 19:28:38

标签: java shell command execute

我正在编写一个需要执行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命令似乎很简单,但它无法正常工作。

2 个答案:

答案 0 :(得分:1)

我认为你传递的命令字符串就像某些mkdir命令一样, “mkdir C:\ some \ folder \ path”。

mkdir不是Windows路径中的二进制文件,它是命令行的参数。 使用命令字符串“cmd.exe / c mkdir C:\ some \ folder \ path”

然后它应该可以正常工作。

答案 1 :(得分:0)

您的程序可能没有足够的权限访问根目录。尝试在您的主目录中创建一个文件夹,例如下面给出的是工作代码:

https://www.example.com