获取在java中执行cmd命令所花费的时间

获取在java中执行cmd命令所花费的时间,java,cmd,Java,Cmd,如何获取从java调用的某个cmd命令所花费的时间 假设我正在发出icmp请求 String icmpRequest= "ping 192.168.3.3"; Runtime.getRuntime().exec(icmpRequest); 调用exec后,我的函数将完成到下一行。 有没有办法知道执行这个命令所花费的时间,或者停止这个线程,直到这个过程完成 我们是否可以说,流程的inputstream返回数据后,流程就完成了 BufferedReader in = new BufferedR

如何获取从java调用的某个cmd命令所花费的时间 假设我正在发出icmp请求

String icmpRequest= "ping 192.168.3.3";
Runtime.getRuntime().exec(icmpRequest); 
调用exec后,我的函数将完成到下一行。 有没有办法知道执行这个命令所花费的时间,或者停止这个线程,直到这个过程完成

我们是否可以说,流程的inputstream返回数据后,流程就完成了

 BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));

            //reads the outputs
            String inputLine = in.readLine();
            if(inpuLine!=null)
             System.out.println("process finished");
exec返回您可以使用的进程:

long start = System.nanoTime();
Process p = Runtime.getRuntime().exec(icmpRequest); 
p.waitFor();
long end = System.nanoTime();
System.out.println("it took: " + ((end - start) / 1000000) + "ms");
注意:如果要在进程完成时继续执行其他操作,可以从单独的线程调用它。

exec返回一个可使用的进程:

long start = System.nanoTime();
Process p = Runtime.getRuntime().exec(icmpRequest); 
p.waitFor();
long end = System.nanoTime();
System.out.println("it took: " + ((end - start) / 1000000) + "ms");
注意:如果要在进程完成时继续执行其他操作,可以从单独的线程调用它。

Log System.currentTimeMillis,它返回当前时间(毫秒),作为执行进程之前的最后一件事。过程结束后立即进行减法

String icmpRequest= "ping 192.168.3.3";

long start = System.currentTimeMillis();
Process p = Runtime.getRuntime().exec(icmpRequest); 
p.waitFor();

System.out.println("Took " + (start - System.currentTimeMillis()) + " ms");
Process.waitFor使当前线程等待子进程终止。

Log System.currentTimeMillis,它返回当前时间(毫秒),作为执行进程之前的最后一件事。过程结束后立即进行减法

String icmpRequest= "ping 192.168.3.3";

long start = System.currentTimeMillis();
Process p = Runtime.getRuntime().exec(icmpRequest); 
p.waitFor();

System.out.println("Took " + (start - System.currentTimeMillis()) + " ms");
waitFor导致当前线程等待子进程终止