在linux和macintosh上查找"应用程序数据"的目录

Cod*_*nny 14 java linux directory macos file

我有一个基于LWJGL的游戏引擎,要运行它我需要将所需的本机库放在用户的计算机上.在Windows上,我通过以下方式找到Application Data目录:

System.getenv("APPDATA");
Run Code Online (Sandbox Code Playgroud)

一切都很容易,很好.我创建一个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");
}
Run Code Online (Sandbox Code Playgroud)

那么,这是正确的方法吗?我正在尝试访问Mac上的应用程序支持(我已经知道这相当于Windows上的AppData文件夹)而我正在尝试在Linux上使用类似的文件夹,但我不确定是否"用户.家"找到正确的.

Den*_*kiy 6

这应该工作.只有一件事:在linux上,最好将设置保存在用户目录中的隐藏文件夹中.因此对于linux,要么将您的文件夹放在$ HOME/.config下,要么启动名称.以使其隐藏.

  • 规范说你应该首先查看某些环境变量,如果没有设置,只使用`〜/ .config`. (2认同)