Java 在其他操作系统上存储文件时,AppData(Windows)的替代方案
我正在用Java开发一个游戏项目,我需要将Java 在其他操作系统上存储文件时,AppData(Windows)的替代方案,java,operating-system,appdata,userappdatapath,Java,Operating System,Appdata,Userappdatapath,我正在用Java开发一个游戏项目,我需要将config.ini文件存储在可执行jar位置以外的其他位置。我知道人们通常将它们保存在Windows上的AppData中,但我想让我的游戏完全可移植,没有任何操作系统限制。但要这样做,我需要知道在哪里存储这样的文件 我想知道人们通常在其他UNIX操作系统(主要是Ubuntu或Macintosh(OSX))上把这些文件存储在哪里 如果你能多给我解释一下关于这些OSs的目录,我也会很感激,因为我没有这些系统。我的意思是,例如,在Windows中,人们通常将
config.ini
文件存储在可执行jar
位置以外的其他位置。我知道人们通常将它们保存在Windows上的AppData中,但我想让我的游戏完全可移植,没有任何操作系统限制。但要这样做,我需要知道在哪里存储这样的文件
我想知道人们通常在其他UNIX操作系统(主要是Ubuntu或Macintosh(OSX))上把这些文件存储在哪里
如果你能多给我解释一下关于这些OSs的目录,我也会很感激,因为我没有这些系统。我的意思是,例如,在Windows中,人们通常将应用程序放在桌面上,而Mac用户将它们放在应用程序文件夹中。在Mac的情况下,在应用程序目录中创建文件夹是否会像在Windows桌面上创建文件夹一样糟糕
另外,在Ubuntu的情况下,Windows上的AppData的等价物在哪里?那麦克的案子呢?保存游戏的屏幕截图或在AppData中创建save游戏是个坏主意吗?我真的不想使用通常的程序文件
目录
最后,一个更明智的代码问题。我知道,在Java中,您可以获取窗口的AppData位置,并连接这样的路径,如以下代码所示:
Path FOO=Path.get(System.getenv(“AppData”),“BAR”)代码>
Mac和Ubuntu呢?我怎样才能检查用户是使用Windows还是Ubuntu
非常感谢你,
-Renato对于大多数类似Unix的操作系统,包括Ubuntu和其他Linux发行版,您应该遵循,它描述了用户首选项应存储的位置(即,环境变量$XDG\u CONFIG\u HOME
的值,如果存在,则返回到~/.CONFIG/
)。此目录用于配置。保存游戏应进入$XDG\u DATA\u HOME
或如果未指定~/.local/share
,类似地
OSX也类似于Unix,但使用自己的路径。这将在中解释。您是否考虑过Java首选项API?(对于问题的config.ini部分,不太适合保存游戏)。嗯,我对Java首选项API不是很熟悉。问题是,我希望用户能够以用户友好的方式编辑config.ini
文件,就像人们处理AAA游戏时通常做的那样。我已经准备好了一个config.ini
文件,还有一个迷你语言,可以检查写入该文件的配置并将其应用到游戏中。另外,正如您所提到的,保存游戏仍然需要存储在某个地方。不过还是要谢谢你!好的,那么在Java中,这在代码方面是如何工作的呢?它是否类似于System.getenv($XDG_CONFIG_HOME”)代码>?我知道我要求很多,但那将是巨大的帮助。谢谢。那应该是System.getenv(“XDG\u CONFIG\u HOME”)
(没有美元符号),但是你必须检查null
,并默认为~/.CONFIG
。可能会有一个图书馆为你做这件事。如果我有任何疑问,我会尝试一下,谷歌会提供更多信息。谢谢
Thank you very much,
-Renato