因日前想要讓程式同一時間只能執行一次,不允許同一時間有兩隻程式執行,爬文看到最多的作法就是取得第一隻程式執行的pid,再寫入文檔,當第二隻程式開啟時去讀文檔有pid值就不允許執行;以下是取得目前執行程式的 PID。

import java.lang.management.*;

public class getPid {
	
    public static void main(String[] args) {
		String name = ManagementFactory.getRuntimeMXBean().getName();  
		System.out.println(name); //輸出完整資料
		
		String pid = name.split("@")[0];//依@字串分割
		System.out.println("Pid is:" + pid);
	}
}

後記:
後來沒選用判斷文件的方式來阻止同一隻程式同時執行兩次,因為該方式有個缺點,就是程式第一次執行時寫入文本pid,程式關閉時再刪除文本中的pid,第二次執行再重覆這個機制,但如果程式異常結束時沒有執行到清空文本的時候,就會造成該程式永遠無法開啟。

喜歡我的文章嗎?歡迎按讚加分享/留言交流,或是點擊下方廣告讚助我喝一杯咖啡吧 ^_^ ⇩⇩⇩

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *