При разработке приложений на Java, особенно кросс-платформенных, часто возникает необходимость обнаружить домашний каталог пользователя. Причем, обнаружение должно работать на различных операционных системах: Windows (2000, XP, Vista), OS X, Linux и других Unix-подобных. В качестве примера можно привести приложение, которое сохраняет пользовательские настройки в домашнем каталоге пользователя.
Однако, возникает сложность. Системное свойство user.home
в Java, которое обычно используется для обнаружения домашнего каталога пользователя, не работает корректно на некоторых платформах (например, на Windows XP). Это значит, что использование этого системного свойства не является универсальным решением.
Но не стоит отчаиваться, есть другой способ решения этой задачи. Для обнаружения домашнего каталога пользователя на всех платформах можно использовать следующий код:
String home = System.getProperty("user.home"); if (home == null) { home = System.getenv("HOME"); }
В этом коде сначала пытаемся получить домашний каталог пользователя из системного свойства user.home
. Если это свойство пустое (что может случиться на некоторых платформах), то в качестве «запасного» варианта используется переменная окружения HOME
.
Такой подход обеспечивает кросс-платформенность и позволяет надежно обнаружить домашний каталог пользователя на большинстве платформ.
Добавить комментарий