利用ProcessBuilder在运行时更新程序
来源:互联网 发布:淘宝母婴类目有哪些 编辑:程序博客网 时间:2024/06/16 09:59
代码如下:
public void restart(File file) {
try {
System.out.println("程序准备在5秒后重启,转入后台运行!");
Thread.sleep(5000);
// 用一条指定的命令去构造一个进程生成器
System.out.println("java home -- "
+ System.getProperty("java.home"));
String java = "java.exe";
if (!OsUtil.isOsWindows()) {
java = "java";
}
ProcessBuilder pb = new ProcessBuilder(
System.getProperty("java.home") + File.separator + "bin"
+ File.separator + java, "-DJAR_NAME=\""
+ file.getName() + "\"", "-jar", file.getName());
// 将这个进程的工作区空间改为X,相当于指定jvm的user.dir
// 这样的话,它就会去X目录下指定的jar文件
pb.directory(new File(new File(PROG_DIR).getAbsolutePath()));
// 得到进程生成器的环境 变量,这个变量我们可以改,
Process p = pb.start();
System.out.println("完成重启,已转入后台运行,本控制台将本结束!");
System.exit(0);
} catch (Exception e) {
e.printStackTrace();// 重启过程只能忽略异常。靠JRE的健壮性保证。
}
}
其中方法中的参数"file"为新的jar包名称
- 利用ProcessBuilder在运行时更新程序
- 在linux下利用nohup来后台运行java程序
- 在linux下利用nohup来后台运行java程序
- 在linux下利用nohup来后台运行java程序
- 在linux下利用nohup来后台运行java程序
- IDEA利用JPDA远程调试运行在tomcat中的程序
- 其实在程序运行时
- C#在运行时更新状态栏信息
- 利用飞信虚拟框架开发绿色.NET程序,让winform程序在客户端直接运行
- 利用批处理文件运行java程序
- 运行时自更新程序的.NET实现
- 在运行时刻更新功能模块
- 程序在开机时自动运行
- 在程序运行时打开图片文件
- 在程序运行时申请权限
- 程序运行时,利用反射调用不同窗体
- 在运行SSIS包时,如何动态更新变量值
- 在运行SSIS包时,如何动态更新变量值
- 对方更好
- Android学习之 自定义属性及TypedArray的用法
- 所有常见证书处理函数的实现
- jeecms系统_自定义对象流程
- leetcode-Remove Duplicates from Sorted Array II
- 利用ProcessBuilder在运行时更新程序
- Cocos2d-x 3.0心得(04)-BGM管理
- cocos2d-x 开启多触点
- arm交叉编译工具链的制作
- 黑马程序员_OC学习之类方法与对象方法
- C# winform程序运行过程中提示"尝试读取或写入受保护的内存.这通常指示其他内存已损坏的"
- Install Atom on Ubuntu.
- hibernate多表关联
- Linux中的EAGAIN含义