我想在計算機上安裝監控系統(該程序是一個jar文件),並在每次用戶登錄時啓動時運行它。但是,我不希望用戶能夠終止它,因爲它不能再被監視。防止用戶終止Java程序?
我們已經嘗試了幾種方法:
安裝它作爲服務 - 這裏的問題是,我們的程序不能正常工作下去;它無法連接到正在監視它的計算機。我們爲此使用了「另一個Java服務包裝器」,並研究了一些其他包裝器,以幫助我們將其作爲服務安裝。
在啓動時運行程序(使用文件夾啓動),但沒有給予基本用戶編輯/刪除/亂用文件的權限。但是,這似乎會減慢整個計算機的速度?當我們直接運行執行jar的bat文件時,不會發生這種情況。與此有關的另一個問題是,用戶可以去任務管理器並殺死Java進程。
我們嘗試了前一個版本的變體,通過另一個進程來解決被殺死進程的問題。一個會產生另一個,這兩個進程將互相標記。如果終止,另一個檢測到它並運行它再次啓動它。雖然如果用戶在兩次進程再次重新生成之前殺死兩個進程的速度足夠快,那麼它可能會出現問題,但更大的問題是它有時會在連接到其他計算機時出現問題。當它只有一個罐子時,我們沒有這個問題。
有沒有人有任何想法如何解決這些問題?
這裏的上下文是windows,但是如果你有對linux和mac的建議,那也不錯!
你應該找出爲什麼你的代碼將不作爲服務工作。這是標準的Windows方式,以確保您的應用程序保持運行。 – ObscureRobot
它好像有問題通過網絡連接到其他計算機。港口是開放的,但它沒有收到任何東西。作爲服務運行的程序是否受限於他們能夠做的事情? – Angeline