要让一个java程序自动重启还真不容易的,重启分两步,首先是结束程序,这个简单,只要运行System.exit()就可以了。然后是启动,这个就难了,这个时候程序都已经结束了,就像一个人死了就不可能再自己站起来,怎么办呢?让别人帮他扶起来,幸运的是,我也有这样的条件,我要重启的那个程序并不孤独,还有另一个java程序和它一起在运行,我只要让运行着的那个程序来启动它就可以了。

但运行着的那个程序它怎么知道要关闭的那个程序在什么时候关闭呢,如果不知道就不能贸然启动。只有让要关闭的那个程序在自杀前先通知一下了,就是发个信息给运行着的那个程序,告诉它,我要自杀了,你准备重启我吧。好了,这个也解决了,可以重启了。

但第二个问题又来了,怎么启动呢,一般java程序都是用批处理来启动的,但在程序里像这样调用批处理文件却行不通:

try

{

Runtime.getRuntime().exec("要启动的批处理.bat");

}

catch(Exception e)

{

e.printStackTrace();

}

在java程序里只能调用可执行程序来运行,批处理是不能运行的。怎么办?没办法了吗?找到一个软件VisualBat,用它把批处理编译成可执行程序,这样就可以了。

好了,现在可以关闭,也可以启动了,但还有一个问题:我要一天启动一次而且还要在下午5点时重启,这个要考虑一下了,最后这样做,用两个变量,一个记下程序启动时的日期,一个记下当前是几点,只要所记的日期不是今天而且现在又是5点,就可以重启了。

本以为完成了,但程序闪了一下就不见了。仔细想了一下,可能结束程序与启动程序间隔时间太短了,旧程序还没有完全释放端口,新程序就来抢端口了,由于新程序没抢到端口,于是就自己关闭了。这个也简单,只要在启动前先等一等,Thread.sleep(5000) ,等上5秒,让端口完全释放,这时再启动就可以了。确实如此,这个问题就这样解决了。

以上这篇让Java程序自动重启的实现方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

重启java_让Java程序自动重启的实现方法(推荐)相关推荐

  1. java程序自动重启_让Java程序自动重启的实现方法(推荐)

    要让一个java程序自动重启还真不容易的,重启分两步,首先是结束程序,这个简单,只要运行System.exit()就可以了.然后是启动,这个就难了,这个时候程序都已经结束了,就像一个人死了就不可能再自 ...

  2. java程序自动重启_java程序自动重启

    java写的cs程序,要求设置一个时间,让程序自动重启. 思路,java代码写一个定时器,每隔一秒判断是否重启,若符合条件,则创建一个新的线程,线程调用一个重启的批处理,重启批处理先停止5分钟,接着在 ...

  3. linux 进程自重启,linux 进程监控和自动重启的简单实现

    目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重 ...

  4. 小米6自动重启android,小米6充电重启怎么办 小米6充电自动重启解决方法

    小米6充电重启怎么办 小米6充电自动重启解决方法 来源:www.18183.com作者:似水流年时间:2017-05-04 小米6充电重启怎么办呢?本文小编为您带来小米6充电重启怎么办 小米6充电自动 ...

  5. Java程序编译的几个方法(编辑器Notepad++)

    Java程序编译的几个方法 以写好的HelloWorld.java文件为例: 我将这个HelloWorld.java文件放在了: HelloWorld.java文件的内容: 编译的原理就不多说了:(画 ...

  6. python读文件路径-python获取程序执行文件路径的方法(推荐)

    1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os. ...

  7. linux下java程序实现重启功能

    今天有个需求要实现java程序重启的功能,类似界面上有个重启按钮点击一下实现程序重启. 一开始网上找了一些方法,都不能实现自己重启,类似新建进程之类的nohup &,ProcessBuilde ...

  8. android 清理后自动重启,解决Android后台清理APP后,程序自动重启的问题

    最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序必crash,而有的手机(小米)程序不会crash.查找问题时,发现H ...

  9. android 程序崩溃后自动重启,Android 应用Crash 后自动重启的方法小结

    前提 首先,我们肯定要在Application里面注册一个CrashHandler,监听应用crash public class TestApplication extends MultiDexApp ...

最新文章

  1. vs2008中,在OCX控件中应用doc/view基本步骤
  2. SAP LSMW 导入物料主数据报错 - You have not fully maintained the descriptions - 之分析
  3. 袁新生《LINGO和Excel在数学建模中的应用》
  4. c++primer plus 第13章 编程题第2题
  5. Django+JWT实现Token认证
  6. unity如何让物体与特定物体之间不发生碰撞
  7. 02-方法-课后思考
  8. 【Level 08】U06 Good Feeling L5 Now showing in theaters
  9. 【HTML+CSS网页设计与布局 从入门到精通】第5章-表格
  10. laravel框架详解
  11. Android FFmpeg视频添加水印
  12. PPT设置自动生成页码
  13. 最短路径算法,Dijkstra算法,floyd算法 07-图4 哈利·波特的考试 (25 分)
  14. 配天机器人——使用笔记
  15. 系统工程师 运维工程师区别
  16. MATLAB 实现轨迹分类(路径、曲线分类)
  17. 微信小程序头像上传(一)
  18. Paypal 实现自动订阅
  19. 了解Socket吗?什么是socket?
  20. 分布式 PostgreSQL 集群(Citus)官方示例 - 多租户应用程序实战

热门文章

  1. 李沐老师《动手学深度学习》课程总结1
  2. 【OpenCV 例程200篇】39. 图像灰度的线性变换
  3. linux系统安装serv u,建立第一个可用的FTP服务器
  4. gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
  5. mysql 中varchar_MYSQL中VARCHAR和CHAR类型
  6. ef power tools mysql_使用 EF Power Tool Code Frist 生成 Mysql 实体
  7. 支持向量机的基本思想_支持向量机的分类思想
  8. python应用体系_python-大型django应用程序体系结构
  9. 测试开发——flask视图函数与路由 实战重点
  10. Hadoop集群(一) Zookeeper搭建