繁体   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