0

我正在制作一个将选项和 LWJGL jar 存储在标准应用程序数据存储目录中的 Java 游戏(我认为这是 Windows 上的 C:\Users\user\AppData\roaming\application、Linux 上的 ~/.application 和 ~/Library /Mac 上的首选项)。目前我只使用 System.getProperty(os.name) 并有一个 if-else 来选择正确的文件路径(它使用 system.getProperty(user.home) 并附加正确的文件路径)。但是,这可能不适用于某些奇怪的操作系统,因为 if-else 不会在操作系统名称中找到 Windows、Mac 或 Linux,而且这似乎也是一种非常糟糕的方法(也是 if-如果不是 Windows 或 Mac,则假定操作系统是 Linux)。我尝试反编译 Minecraft,它将应用程序数据和 LWJGL jar 存储在正确的路径中,但代码被混淆了。有没有更好的方法让我做到这一点,

4

3 回答 3

3

Java Preferences API就是专门为此目的而创建的。

于 2013-04-13T00:02:50.787 回答
2

对于配置首选项,有 Java Preferences API。

对于其他文件,我还没有找到解决方案。目前,最好的解决方案可能是在 OS 类型上调度,并基于user.home属性进行回退。

在 Linux/Unix(不是 Mac)上,您可能希望遵守XDG Base Directory 规范

于 2013-04-13T01:09:24.390 回答
0

像这样的路径不应该无处不在,即没有if-else-if:

String userHome = System.getProperty("user.home");
if (!userHome.endsWith("/")) {
  userHome += "/";
}

String targetPath = userHome + ".myapp/settings.properties";
于 2013-04-12T23:55:54.600 回答