首页  ·  知识 ·  编程语言
利用ProcessBuilder实现JAVA程序的重启
千里冰封  itpub.net  Java  编辑:dezai  图片来源:网络
利用JDK1.5新增的ProcessBuilder来创建一个重启进程,然后自己的进程退出. 简单 代码如下: /** Test3.java** Created on 2007-9-27, 11

利用JDK1.5新增的ProcessBuilder来创建一个重启进程,然后自己的进程退出.

简单 代码如下: /*
* Test3.java
*
* Created on 2007-9-27, 11:46:31
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test2;
import java.io.File;
import java.io.IOException;
import java.util.Map;
/**
*
* @author hadeslee
*/
public class Test3 {
public static void restart() throws IOException{
//用一条指定的命令去构造一个进程生成器
        ProcessBuilder pb=new ProcessBuilder("java","-jar","Test3.jar");
//让这个进程的工作区空间改为F:\dist
//这样的话,它就会去F:\dist目录下找Test.jar这个文件
        pb.directory(new File("F:\\dist"));
//得到进程生成器的环境 变量,这个变量我们可以改,
//改了以后也会反应到新起的进程里面去
        Map map=pb.environment();
Process p=pb.start();
//然后就可以对p做自己想做的事情了
//自己这个时候就可以退出了
        System.exit(0);
}
}
在这里我们利用了ProcessBuilder这个类,这个类是一个进程的生成类,我们在起动一个进程之前可以设置好相关的一些参数,比如工作目录,环境变量等等,但是设置环境变的时候,有一个需要注意的地方就是你设置的环境变量不会改变系统原来的环境变量.也就是说即使你把path设为空,这个进程的运行的时候,依然是读取系统的path找到java这个命令,否则的话,你把path设为空,java命令是不可能找得到的.
一般来说ProcessBuilder这个类都是在万不得已的情况下才用的,因为用了它以后,程序很难保证可移植性,除非你在每个平台上都找到相应的命令执行相应的事情.

本文作者:千里冰封 来源:itpub.net
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的