我有一个基于LWJGL的游戏引擎,要运行它,我需要将所需的本机库放置到用户的计算机上。在Windows上,我可以通过以下方法找到Application Data目录:
System.getenv("APPDATA");
一切都变得轻松愉快。我创建一个File对象,必要时调用mkDir,如果文件尚未在计算机上,则将其写入。
(注意:创建的目录不应是临时文件,因为我想保存提取的文件以备将来运行。此外,创建此目录将为保存的游戏和其他此类数据提供一个简单易用的文件夹。)
但是,如果计算机是Macintosh或Linux,我想做类似的事情,但是我对这两个系统的操作方法不熟悉,而且我的测试位置也不是很好。我当前找到目标目录的方法是:
private static String defaultDirectory() { String OS = System.getProperty("os.name").toUpperCase(); if (OS.contains("WIN")) return System.getenv("APPDATA"); else if (OS.contains("MAC")) return System.getProperty("user.home") + "/Library/Application " + "Support"; else if (OS.contains("NUX")) return System.getProperty("user.home"); return System.getProperty("user.dir"); }
那么,这是正确的方法吗?我试图在Mac上获得应用程序支持(我知道这与Windows上的AppData文件夹等效),并且我试图在Linux上使用类似的文件夹,但是我不确定“用户。首页”找到正确的答案。
这应该工作。只是一件事:在Linux上,最好将设置保存在用户目录中的隐藏文件夹中。因此,对于Linux,要么将文件夹放在$ HOME / .config下,要么以开头.以使其隐藏。
.