iT邦幫忙

0

如何讓java程式同一時間只能執行一隻

  • 分享至 

  • xImage

java 單機應用程式 ,功能 監聽 硬體健康狀態,會用到com port所以如果同時開兩次會有搶資源的狀況發生。

由於是java新手,又有時間壓力卡了一天,爬文資料比較偏網路應用程式鎖port的作法。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
I code so I am
iT邦高手 1 級 ‧ 2019-08-16 10:11:55
最佳解答

程式可鎖定系統資源或檔案來防止重複執行,例如 socket port,可參考:
https://stackoverflow.com/questions/434718/sockets-discover-port-availability-using-java

例如,該文所述:

private static boolean available(int port) {
    try (Socket ignored = new Socket("localhost", port)) {
        return false;
    } catch (IOException ignored) {
        return true;
    }
}
混水摸魚 iT邦研究生 2 級 ‧ 2019-08-16 10:54:28 檢舉

感謝…最後我的作法與它相似,但我是判斷實體的com port是否被開啟…

0
player
iT邦大師 1 級 ‧ 2019-08-15 15:11:48
混水摸魚 iT邦研究生 2 級 ‧ 2019-08-15 16:33:14 檢舉

感謝,我來試試看~

混水摸魚 iT邦研究生 2 級 ‧ 2019-08-16 10:55:09 檢舉

該作法無法使用 已找到其它方式解決…

我要發表回答

立即登入回答