我正在制作一个将选项和 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 存储在正确的路径中,但代码被混淆了。有没有更好的方法让我做到这一点,
问问题
824 次
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 回答