gpt4 book ai didi

Java:在不需要管理权限的情况下在哪里编写配置

转载 作者:行者123 更新时间:2023-11-30 06:30:44 24 4
gpt4 key购买 nike

我真的不敢相信我会这么说,但自从将我的程序移植到 OSX 并习惯了权限后,我意识到我计划在 Windows 上做的事情不会按照我想要的方式工作。目前,在 Windows 上,我的程序将其设置存储在注册表 (HKLM) 中,并将一些用户可编辑资源存储在程序文件旁边的文件夹中。出于各种原因,我现在决定将配置/设置存储在一个文件中,用户将能够知道其他资源保存在哪个文件夹中。

所以我现在的问题是将配置文件存储在哪里。明明是会更新的,但是我不想程序非得要求管理员权限才能运行。我想提供一个选项,以便所有用户都可以使用该程序(就像大多数程序一样),这当然需要管理员,所以这会导致第二个查询:我应该在哪里存储配置文件(以及文件夹保留了哪些其他资源)以及如何检测程序是为所有用户安装还是仅为一个用户安装!

提前致谢

PS 如果您没有猜到,该程序是用 Java 编写的,所以我也想知道如何以编程方式获取您建议的位置。

最佳答案

在 *nix 兼容程序中,通常的做法是将信息存储在以 name 开头的文件夹中。在用户的主目录中,例如,

.bash_history
.bashrc

在我看来,您可以在 OSX 上使用相同的方法并创建一个目录,比如,

.myapp

您可以在该目录下存储任意数量的任意格式的文件。

要获取文件夹的位置,您可以这样做

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

这大致就是可以为您的应用程序获取自定义配置目录的代码。

请注意,点文件/文件夹有点类似于 Windows 中的隐藏文件夹。默认情况下,您的文件管理器通常不会显示这些文件/文件夹。

要确定该程序是否为所有用户安装,您可以在某些管理员(root)控制的位置创建配置,例如/etc(不确定 Mac)用户配置始终可以覆盖默认配置。不过,可能有更好的方法来处理这个问题。

关于Java:在不需要管理权限的情况下在哪里编写配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com