Обнаруживаете путь установки вашего приложения в Java? - PullRequest
1 голос
/ 19 апреля 2010

Я сделал небольшое приложение на Java, и я хотел бы сделать для него установщик Windows, используя систему установки Nullsoft Scriptable Install System (http://nsis.sourceforge.net/Main_Page).

)

Приложение, которое я создал, должно где-то сохранять пользовательские настройки, и в настоящее время оно сохраняет его в домашнем каталоге пользователя (например, c: \ Users \ danny или / home / users / danny). Однако, если установщик Windows устанавливает приложение, например, в. c: \ Program Files \ что угодно \ Я, вероятно, тоже должен сохранить там файл настроек, верно?

Как мне определить этот путь к каталогу в Java? Что может быть хорошим кроссплатформенным подходом к этому без потери преимуществ программы удаления Windows для пользователей Windows, например значки меню «Пуск», опция установки и т. д.

Должен ли я просто сохранить свои настройки в домашнем пути пользователя и загромождать их?

Большое спасибо,

Ответы [ 3 ]

4 голосов
/ 19 апреля 2010

лучшее место для сохранения предпочтений пользователя - домашний каталог пользователя. Также это хорошо с точки зрения безопасности.

Чтобы получить путь из Java:

System.getProperty("user.home");

Это кроссплатформенная. (/ home / username в Linux (или подобное зависит от конфигурации ОС) C: \ Documents and Seetings \ username в windows)

Больше свойств: http://www.mindspring.com/~mgrand/java-system-properties.htm

Также убедитесь, что у вашего приложения достаточно прав (для апплета оно должно быть подписано)

3 голосов
/ 19 апреля 2010

Я бы сохранил домашний каталог пользователя для сохранения настроек.

В качестве альтернативы вы можете использовать Preferences API .

С помощью API настроек вы можете хранить настройки приложения и пользователя. Недостатком является то, что реализация контролирует, где эти файлы хранятся. По умолчанию в Windows используется реестр.

import java.util.prefs.Preferences;

// System node
Preferences systemPrefs = Preferences.systemNodeForPackage(YourClass.class);
// User node
Preferences userPrefs = Preferences.userNodeForPackage(YourClass.class);

systemPrefs.put("My Preference", "A string");
String myPreference = systemPrefs.get("My Preference");
userPrefs.putInt("A number", 1);
int aNumber = userPrefs.getInt("A number");
2 голосов
/ 19 апреля 2010

Однако, если установщик Windows устанавливает приложение, например, в c: \ Program Files \ все, что я должен возможно сохраните файл настроек там тоже, верно?

Нет, вы абсолютно не должны. Компьютеры могут иметь более одного пользователя, и обычная учетная запись пользователя не имеет доступа для записи в каталоги установки программы. Недальновидные программисты, которые пишут код, предполагая, что на компьютере есть только один пользователь, который может сделать все, являются причиной того, что существует так много дрянных приложений, которые делают невозможным запуск Windows XP в надлежащей защищенной конфигурации и требуют Vista и Windows 7 для выполнения странных обходных путей .

Домашний каталог пользователя точно правильное место для файлов настроек - таким образом, они также будут сохранены (никто не хочет создавать резервные копии двоичных файлов программы). Кроме того, рассмотрите возможность использования API предпочтений Java вместо того, чтобы тратить время на реализацию собственной схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...