Java Runtime.exe()不返回PowerShell命令输出

时间:2018-06-26 09:05:32

标签: java windows powershell cmd

我尝试使用Java Runtime.exe在命令下运行

String command ="powershell (Get-item  \"D:\\test\" ).creationtime.ToString(\"yyyy-MM-dd'T'HH:mm:ss\")";

当我在 windows命令提示符上运行它时,它返回“ 2017-08-07T20:03:00”。

但是当我在 myMethod 中运行该程序时,该程序也正在运行,并且什么也没有返回。

myMethode:

private static void executePowerShellCommand(String command) {

    String line = "";
    command = "cmd /c " + command;
    try {
         Process process = Runtime.getRuntime().exec(command);
         process.getOutputStream().close();
         BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
         while ((line = reader.readLine()) != null) {
             System.out.println(line);
         }
         reader.close();
         System.out.println("Done");
         } catch (java.io.IOException e) {
             e.printStackTrace();
         }
        return;
}

1 个答案:

答案 0 :(得分:0)

我发现了问题

我的命令有误,正确的命令是:

String command = "powershell (Get-item '" + filePath + "' -Force).LastAccessTime.ToString(\\\"yyyy-MM-dd'T'HH:mm:ss'Z'\\\")";