如题,比如我们在Linux或Solaris中执行kill -16 1178这么一个命令的时候,正在系统中运行的Java程序如何能得知系统当前执行了这个命令?貌似c++程序是可以捕获这个signal

解决方案 »

  1.   

    public class Runtimeextends Object每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
      

  2.   

    Runtime.getRuntime().exec()方法有返回的,看看API DOC
    返回的是个Process对象,你可以通过exitValue来看
      

  3.   

    Process pro = Runtime.getRuntime().exec(cmd);BufferedReader in = new BufferedReader(new InputStreamReader(pro.getInputStream()));StringBuffer sb = new StringBuffer();String str;while((str=in.readLine())!=null)
      sb.append(str);
    System.out.println(sb.toString());
      

  4.   

    谢谢楼上诸位,不过也许是我没说清楚,诸位都误会了,我不是问在Java程序里怎么执行一个系统命令,而是运行中的Java程序如何得知用户在终端执行了某个系统命令。举个例子:我在Linux上先运行了一个Java程序,然后再打开一个终端(这边的终端类似Windows中的dos命令窗口)输入一个命令,比如:ls -l(与dos命令中的dir功能相同)并执行。问题来了,就是我要求事先运行起来的Java程序对我刚刚在终端上执行的“ls -l”命令作出反应。
      

  5.   

    用Runtime.getRuntime().exec("系统命令");