目录

在java程序中开启另一个java程序

目录

在java程序中开启另一个java程序

在java程序中开启另一个程序(用nohup开启的守护进程)

实习了一段时间,终于有活干了。

最近在写一个小程序,作为linux的守护进程周期性的执行脚本。

这个守护进程写完之后,又写了一个控制台,用控制台来对守护进程进行开启,关闭。。

在写开启时,想用Runtime 和Process 来执行命令来开启守护进程,代码是这样的

Process process = null;
try {
      process = Runtime.getRuntime().exec("nohup java myDaemon configure.xml &");
      process.waitFor();
}exception(Exception e){
      e.printStackTrace();
}

然而,这并没有什么卵用。 。根本没有开启,于是上网查了一些资料,发现很多人有这种困扰,

有人建议用反射来解决问题。发现这并不能后台开启我的进程。

后来试了一下用ProcessBuilder 可以解决。。

代码如下

try{
     ProcessBuilder pb = new ProcessBuilder("nohup","java","myDaemon","configure.xml","&");
     pb.start();
}<pre name="code" class="java">exception(Exception e){
      e.printStackTrace();
}

这样可以开启我的进程了!! http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif

但是我还是不明白这到底是为什么?? http://static.blog.csdn.net/xheditor/xheditor_emot/default/panic.gif