Найти каталог для «данных приложения» в Linux и Macintosh

У меня есть игровой движок, основанный на 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 (я узнал, что это эквивалент папки AppData в Windows), и я пытаюсь использовать аналогичную папку в Linux, но не уверен, что "user. home "находит правильный.

14
задан CodeBunny 3 July 2011 в 04:56
поделиться