2012-04-21 62 views
2

我真的不敢相信我在說這個,但是由於將我的程序移植到OSX並習慣了權限,我意識到我計劃在Windows上做什麼不工作我想要如何。目前,在Windows上,我的程序將它的設置存儲在註冊表(HKLM)中,並將一些用戶可編輯資源存儲在程序文件旁邊的文件夾中。出於各種原因,我現在已經決定將配置/設置存儲在文件中,並且用戶將能夠在其他文件夾中保存其他資源。Java:在哪裏編寫配置而不需要管理權限

所以我現在的問題是在哪裏存儲配置文件。顯然它會被更新,但我不想編程必須要求管理員權限才能運行。我想提供一個選項,以便所有用戶都可以使用該程序(與大多數程序一樣),當然這需要Admin,所以這將導致第二個查詢:我應該在哪裏存儲配置文件(並將文件夾存儲在哪些其他資源保存)以及如何檢測程序是否已經爲所有用戶安裝或只安裝一個!

在此先感謝

PS如果沒猜錯,該程序是用Java編寫的,所以我想知道如何編程讓你建議以及請的位置。

回答

4

它在* nix兼容的程序中將信息存儲在以名稱開頭的文件夾中的正常實踐。在用戶喜歡的主目錄,

.bash_history 
.bashrc 

你可以使用在OSX同在我看來,創建一個目錄,那麼

.myapp 

您可以將任意數量的文件與在任何格式該目錄。

要獲得該文件夾的位置,你可以做

String homeDir = System.getProperty("user.home"); 
File myAppDir = new File(homeDir, ".myapp"); 

這大致可以讓你自定義的配置目錄爲您的應用程序代碼。

請注意,點文件/文件夾與Windows中的隱藏文件夾有些相似。您的文件管理器通常不會默認顯示這些文件/文件夾。

要確定程序是否爲所有用戶安裝,您可以在某些管理員(root)受控位置(如/ etc)(不確定Mac)中創建配置。用戶配置始終可以覆蓋默認配置。可能有更好的方法來處理這個問題。

+0

對不起,答覆緩慢,謝謝你的回答。 'user.home'屬性看起來就是我所需要的,我想,爲了檢測天氣,已經爲所有用戶安裝了程序(在Windows上),我會將配置存儲在Program Files中或者看起來好像它會需要管理員權限才能寫入。在Mac上,我並不那麼擔心,因爲他們的工作方式(在應用程序方面)。 – Andy 2012-04-22 20:00:39

1

在windows和unix上,用戶(通常)都有一個擁有完全權限的(home)文件夾。您可以在主文件夾中創建一個目錄,並將用戶配置文件保存在那裏。

+0

感謝您的回答 - 這基本上是Kal說的,但是因爲他是一個更完整的答案,我會接受他的。 – Andy 2012-04-22 20:02:19

相關問題