在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();
}
这样可以开启我的进程了!!
但是我还是不明白这到底是为什么??