Поиск каталога установки приложения в Windows с использованием Java

У меня есть Java-приложение, для которого я сделал установщик. В коде мне нужно знать, где пользователь установил приложение, так как пользователь должен установить приложение в своем любимом каталоге. Итак, как мне получить эту информацию, используя код Java? Мне нужно это конкретно для платформы Windows.

2 ответа

Решение

Сложно определить, где установлено приложение, так как оно оставлено на усмотрение пользователя. Таким образом, один из способов получить каталог установки приложения - использовать переменные окружения на машине с Windows. Когда вы создаете установщик, задайте переменную среды (вы можете создать новую, скажем, переменную "XYZ" или также можете использовать существующую) и установить ее значение в каталог приложения (поскольку вы не упомянули используемый установщик) поэтому я не могу сказать, как бы вы сделали это при сборке установщика для вашего приложения). Как только вы это сделаете, вы можете получить значение этой переменной среды в java-коде, который даст вам каталог установки вашего Приложения. Вот код для получения значения env var XYZ:

System.getenv("XYZ");

Вы могли бы использовать System.getProperty("user.dir") которая выдаст вам текущий рабочий каталог программ, но это может быть не каталог установки.

Вместо этого из вашего установщика запишите файл в System.getProperty("user.home") местоположение (назовите это как-то .MyApplicationConfig сделать его скрытым файлом или поместить его в каталог {user.home}\AppData\Local) который содержит место установки, выбранное пользователем.

Это позволит вам в будущем прочитать файл из любого места, поскольку он хранится в центральном известном месте.

Другие вопросы по тегам