我正在用java開發一個應用程序。我需要設置環境變量作爲我的應用程序的一些先決條件,如數據庫路徑等。如何爲所有類型的操作系統設置環境變量?
在操作系統中,我可以手動設置,實際上我需要通過java代碼設置所有我的先決條件,本身也它應該支持所有類型的dektop平臺,最好是windows,linux和mac。
我正在用java開發一個應用程序。我需要設置環境變量作爲我的應用程序的一些先決條件,如數據庫路徑等。如何爲所有類型的操作系統設置環境變量?
在操作系統中,我可以手動設置,實際上我需要通過java代碼設置所有我的先決條件,本身也它應該支持所有類型的dektop平臺,最好是windows,linux和mac。
除了子進程(即由ProcessBuilder
啓動的進程)之外,不能從Java內部設置系統環境變量。
每個操作系統都支持更改應用於用戶啓動的新進程的用戶默認環境變量的方法,但它取決於操作系統。例如在Linux下,它通常就像編輯文件~/.profile
一樣簡單,但並非總是如此(我不是Linux專業人員都知道所有的方法)。在Windows上,您需要編輯註冊表。
我認爲,由於無法手動編輯Java Preferences API,因此無法解決問題。 然而你可以編寫你自己的設置編輯器(命令行應用程序)。
或者,您可以在System.getProperty("user.home") + ".MyApp"
中創建一個目錄,即在用戶的主目錄中。與Linux兼容,存在權利。然後在那裏存儲一個設置文件。
環境變量只在執行應用程序時需要,對嗎?是否有理由不能僅僅使用系統屬性或將必要的信息傳遞給需要它的代碼? – Thomas
是托馬斯的權利,但對於少數數據庫訪問,我需要設置envrionment可變路徑,類似於開發的jdk路徑設置。 – Sivam
我相信不可能從Java內部設置系統環境變量,除了子進程。 –