2015-03-03 4 views
0

Возможно ли узнать папку установки программы в плагине eclipse?Как найти папку установки программы в плагине Java eclipse

Например, есть программа под названием «W-app», которая по умолчанию устанавливается в файлы c: \ program. Но некоторые пользователи могут выбрать другой каталог (например, D :).

Можно ли узнать, какая папка установки программы «W-app» динамически в java?

ответ

0

Похоже, вы не просите об установке самой установки Eclipse, а о размещении какой-либо другой программы.

В таком случае у вас есть две проблемы. Во-первых, ваш код будет специфичным для платформы, и два, нет гарантированного способа сделать это для произвольных программ. Основываясь на вашем сообщении, я предполагаю, что вас интересует Windows.

  • Если вы знаете, что программа находится в системной переменной PATH, вы можете использовать команду where. where.exe someappinpath.exe вернет путь к текущим версиям Windows. Чтобы на самом деле выполнить команду с Java, вы можете использовать простой вызов Runtime.getRuntime().exec() или посмотреть this question, чтобы улучшить его.

  • Если программа не может быть в PATH, хорошо, если вы знаете, что она пишет в реестр Windows. Тогда вы можете под HKCU\Software или под HKLM\Software, возможно, найти данные приложения и место установки. Опять же, это требует знания того, что приложение сохраняет в реестре.

  • Просматривая SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall под обоими HKCU и HKLM, вы получите информацию обо всех программах, в которых записана информация об удалении. К сожалению, некоторые программы этого не делают, но если это так, вы не можете рассчитывать ни на что.

  • В качестве последнего средства вы можете искать диски для файла, соответствующего имени исполняемого файла программы. Это не очень хороший метод, он медленный, и вы рискуете найти неправильный файл.

С чисто практической точки зрения, если ваш плагин опирается на какой-то программе третьей стороны, я бы сначала попытаться автоматически найти программу (через where или глядя вверх известный ключ реестра, или место установки по умолчанию) и если это не удается, попросите пользователя указать местоположение программы.

+0

Спасибо DUman. Это, похоже, решает мою проблему. Я буду оценивать свои возможности против ваших решений, чтобы то, что я могу сделать. –

Смежные вопросы