簡體   English   中英

Java:無需管理員權限即可在何處編寫配置

[英]Java: Where to write config without requiring administrative rights

我實際上不敢這么說,但是由於將程序移植到OSX並習慣了權限,所以我意識到我計划在Windows上執行的操作無法達到我的期望。 當前,在Windows上,我的程序將其設置存儲在注冊表(HKLM)中,並將一些用戶可編輯的資源存儲在程序文件旁邊的文件夾中。 由於各種原因,我現在決定將配置/設置存儲在文件中,並且用戶將能夠將其他資源保存在哪個文件夾中。

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

提前致謝

PS:如果您沒有想到,該程序是用Java編寫的,因此我想知道如何以編程方式獲取您建議的位置。

* nix兼容程序的常規做法是將信息存儲在以name開頭的文件夾中。 在用戶的主目錄中,

.bash_history
.bashrc

我認為您可以在OSX上使用相同的文件,並創建一個目錄,例如:

.myapp

您可以在該目錄下存儲任意數量的任何格式的文件。

要獲取文件夾的位置,您可以

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

這大致就是可以為您的應用程序提供自定義配置目錄的代碼。

請不要讓點文件/文件夾與Windows中的隱藏文件夾有些相似。 默認情況下,文件管理器通常不會顯示這些文件/文件夾。

要確定是否為所有用戶安裝了該程序,可以在一些管理員(根)控制的位置(例如/ etc)(對於Mac不確定)創建配置。用戶配置始終可以覆蓋默認配置。 不過,可能有更好的方法來處理此問題。

在Windows和Unix上,用戶(通常)都具有一個(家庭)文件夾,該文件夾具有完全權限。 您可以在主文件夾中創建目錄,並將用戶配置文件放置在該目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM