2

我正在使用 Java 开发一个游戏项目,我需要将config.ini文件存储在可执行位置以外的其他jar位置。我知道人们通常将它们保存AppData在 Windows 中,但我想让我的游戏完全可移植,完全不受操作系统限制。但要这样做,我需要知道在哪里存储此类文件。

我想知道人们通常将此类文件存储在其他 UNIX 操作系统上的什么位置,主要是 Ubuntu 或 Macintosh (OS X)。

如果您能向我解释一下有关此类操作系统的目录,我也将不胜感激,因为我不拥有任何这些系统。我的意思是,例如,在 Windows 中,人们通常将他们的应用程序放在桌面上,而 Mac 用户将它们放在应用程序文件夹中。在 Mac 的情况下,在该应用程序目录中创建一个文件夹会和在 Windows 桌面上创建一个文件夹一样糟糕吗?

此外,在 Ubuntu 的情况下,相当于 Windows 上的 AppData 的位置在哪里?Mac 的情况呢?保存游戏的屏幕截图或在里面创建保存游戏AppData或类似的东西是个坏主意吗?我真的不想使用通常的Program Files目录。

最后,一个更明智的代码问题。我知道在 Java 中,您可以获得 Window 的 AppData 位置并连接这样的路径,如下面的代码:

Path FOO = Paths.get(System.getenv("AppData"), "BAR");

Mac 和 Ubuntu 呢?以及如何检查用户使用的是 Windows 还是 Ubuntu?


非常感谢你,
-雷纳托
4

1 回答 1

2

对于大多数类 Unix 操作系统,包括 Ubuntu 和其他 Linux 发行版,您应该遵循XDG Base Directory 规范,该规范描述了用户首选项应该存储在哪里(即环境变量的值,$XDG_CONFIG_HOME如果它存在,则回退到~/.config/)。此目录用于配置。保存游戏应该进入$XDG_DATA_HOME或者如果没有指定~/.local/share,类似地。

OS X 也类似于 Unix,但使用自己的路径。这在 Mac OS X 上的 XDG_CONFIG_HOME 和 XDG_DATA_HOME 的等效项中进行了解释?.

于 2012-07-03T02:07:26.300 回答