欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

讓Java程序自動(dòng)重啟的實(shí)現(xiàn)方法(推薦)

 更新時(shí)間:2017年03月08日 11:24:14   投稿:jingxian  
下面小編就為大家?guī)硪黄孞ava程序自動(dòng)重啟的實(shí)現(xiàn)方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

要讓一個(gè)java程序自動(dòng)重啟還真不容易的,重啟分兩步,首先是結(jié)束程序,這個(gè)簡單,只要運(yùn)行System.exit()就可以了。然后是啟動(dòng),這個(gè)就難了,這個(gè)時(shí)候程序都已經(jīng)結(jié)束了,就像一個(gè)人死了就不可能再自己站起來,怎么辦呢?讓別人幫他扶起來,幸運(yùn)的是,我也有這樣的條件,我要重啟的那個(gè)程序并不孤獨(dú),還有另一個(gè)java程序和它一起在運(yùn)行,我只要讓運(yùn)行著的那個(gè)程序來啟動(dòng)它就可以了。

但運(yùn)行著的那個(gè)程序它怎么知道要關(guān)閉的那個(gè)程序在什么時(shí)候關(guān)閉呢,如果不知道就不能貿(mào)然啟動(dòng)。只有讓要關(guān)閉的那個(gè)程序在自殺前先通知一下了,就是發(fā)個(gè)信息給運(yùn)行著的那個(gè)程序,告訴它,我要自殺了,你準(zhǔn)備重啟我吧。好了,這個(gè)也解決了,可以重啟了。

但第二個(gè)問題又來了,怎么啟動(dòng)呢,一般java程序都是用批處理來啟動(dòng)的,但在程序里像這樣調(diào)用批處理文件卻行不通:

try 
{ 
  Runtime.getRuntime().exec("要啟動(dòng)的批處理.bat"); 
} 
catch(Exception e) 
{ 
  e.printStackTrace(); 
} 

在java程序里只能調(diào)用可執(zhí)行程序來運(yùn)行,批處理是不能運(yùn)行的。怎么辦?沒辦法了嗎?找到一個(gè)軟件VisualBat,用它把批處理編譯成可執(zhí)行程序,這樣就可以了。

好了,現(xiàn)在可以關(guān)閉,也可以啟動(dòng)了,但還有一個(gè)問題:我要一天啟動(dòng)一次而且還要在下午5點(diǎn)時(shí)重啟,這個(gè)要考慮一下了,最后這樣做,用兩個(gè)變量,一個(gè)記下程序啟動(dòng)時(shí)的日期,一個(gè)記下當(dāng)前是幾點(diǎn),只要所記的日期不是今天而且現(xiàn)在又是5點(diǎn),就可以重啟了。

本以為完成了,但程序閃了一下就不見了。仔細(xì)想了一下,可能結(jié)束程序與啟動(dòng)程序間隔時(shí)間太短了,舊程序還沒有完全釋放端口,新程序就來搶端口了,由于新程序沒搶到端口,于是就自己關(guān)閉了。這個(gè)也簡單,只要在啟動(dòng)前先等一等,Thread.sleep(5000) ,等上5秒,讓端口完全釋放,這時(shí)再啟動(dòng)就可以了。確實(shí)如此,這個(gè)問題就這樣解決了。

以上這篇讓Java程序自動(dòng)重啟的實(shí)現(xiàn)方法(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    開發(fā)系統(tǒng)過程中遇到的一個(gè)需求,系統(tǒng)給定一個(gè)接口,用戶可以自定義開發(fā)該接口的實(shí)現(xiàn),并將實(shí)現(xiàn)打成jar包,上傳到系統(tǒng)中。系統(tǒng)完成熱部署,并切換該接口的實(shí)現(xiàn)。本文詳細(xì)介紹了實(shí)現(xiàn)方法,需要的可以參考一下
    2022-10-10
  • Java Online Exam在線考試系統(tǒng)的實(shí)現(xiàn)

    Java Online Exam在線考試系統(tǒng)的實(shí)現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+springboot+vue+jsp+mysql+maven實(shí)現(xiàn)Online Exam在線考試系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Hadoop 使用IntelliJ IDEA 進(jìn)行遠(yuǎn)程調(diào)試代碼的配置方法

    Hadoop 使用IntelliJ IDEA 進(jìn)行遠(yuǎn)程調(diào)試代碼的配置方法

    這篇文章主要介紹了Hadoop 使用IntelliJ IDEA 進(jìn)行遠(yuǎn)程調(diào)試代碼的配置方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • SpringBoot使用mybatis步驟總結(jié)

    SpringBoot使用mybatis步驟總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot使用mybatis步驟展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • java利用Future實(shí)現(xiàn)多線程執(zhí)行與結(jié)果聚合實(shí)例代碼

    java利用Future實(shí)現(xiàn)多線程執(zhí)行與結(jié)果聚合實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于java利用Future實(shí)現(xiàn)多線程執(zhí)行與結(jié)果聚合的相關(guān)資料,Future模式的核心,去除了主函數(shù)的等待時(shí)間,并使得原本需要等待的時(shí)間段可以用于處理其他業(yè)務(wù)邏輯,需要的朋友可以參考下
    2021-12-12
  • Java中BigDecimal的基本運(yùn)算(詳解)

    Java中BigDecimal的基本運(yùn)算(詳解)

    下面小編就為大家?guī)硪黄狫ava中BigDecimal的基本運(yùn)算(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • springboot2.0以上調(diào)度器配置線程池的實(shí)現(xiàn)

    springboot2.0以上調(diào)度器配置線程池的實(shí)現(xiàn)

    這篇文章主要介紹了springboot2.0以上調(diào)度器配置線程池的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • SpringBoot實(shí)現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項(xiàng)目實(shí)踐

    SpringBoot實(shí)現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot實(shí)現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 如何理解Java線程池及其使用方法

    如何理解Java線程池及其使用方法

    線程池是首先創(chuàng)建一些線程,它們的集合稱為線程池。使用線程池可以提高性能,它在系統(tǒng)啟動(dòng)時(shí)創(chuàng)建大量空閑的線程,程序?qū)⒁粋€(gè)任務(wù)傳給線程池,它就會(huì)啟動(dòng)一條線程來執(zhí)行這個(gè)任務(wù),執(zhí)行結(jié)束以后,該線程并不會(huì)死亡,而是再次返回線程池中成為空閑狀態(tài),等待執(zhí)行下一個(gè)任務(wù)
    2021-06-06
  • spring實(shí)現(xiàn)靜態(tài)注入(類或者屬性)操作示例

    spring實(shí)現(xiàn)靜態(tài)注入(類或者屬性)操作示例

    這篇文章主要為大家介紹了spring實(shí)現(xiàn)靜態(tài)注入(類或者屬性)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論