Re: [問題] 如何讓java執行檔在OS上同時間只能跑一隻

看板java作者時間18年前 (2007/07/17 21:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
※ 引述《scdog.bbs@ptt.cc (just do it)》之銘言: > ※ 引述《PsMonkey (痞子軍團團長)》之銘言: > : 很久很久以前(好像在講童話故事) > : 在 Javaworld@tw 那裡有看到同樣的話題 > : 那裡建議的作法是用 lock 網路卡的一個 port > : (現在很難有電腦沒有網路卡吧 XD) > : 另外就是 hypersonic 這個 database(hsqldb) > : 如果你用 in-process 的 type 啟動 hsqldb > : 那他會產生一個 .lck 的檔案 > : 理論上... 程式不正常關閉,下次還是能順利啟動 > : 也許你可以去找找看裡頭弄了什麼手腳 XD > 我之前參考.net的作法 > 是程式執行時check os下process name > 是否跟程式執行的process name一樣 > 若一樣則不執行此程式 > 但我發現java似乎無提供相對的api來使用 > 乾溫ㄋㄟ 如果使用 JavaSE 5.0 以上的版本 可以利用 %java_home%\bin\jps.exe 去檢測你執行的 process name Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("jps.exe") InputStream is = process.getInputStream(); ... 如果有相同的 process name 就將自己 System.exit(-1); 即可 -- ┌─────KKCITY─────┐─┐KKADSL六星級優質連線服務 bbs.kkcity.com.tw └─ 馬上申請帶你上網環遊全世界! └──From:211.21.113.5 ──┘ KKADSL http://adsl.kkcity.com.tw --
文章代碼(AID): #16dBtU00 (java)
討論串 (同標題文章)
文章代碼(AID): #16dBtU00 (java)