мы можем перечислить программное обеспечение, установленное в ОС, используя JAVA - PullRequest
0 голосов
/ 08 марта 2012

Я хочу разработать приложение, в котором я хочу изменить базу данных в соответствии с системой.

Например: я хотел бы подключить код Java к файлу .mdf, если установлен MS-Office, или использовать orathin, если установлен Oracle. Это поможет мне не указывать базу данных и уменьшить мои зависимости.

Ответы [ 3 ]

4 голосов
/ 08 марта 2012

Простой ответ - нет. Нет стандартного способа сделать это, и я не знаю ни одной сторонней библиотеки, которая делает это.


Более подробный ответ заключается в том, что вы теоретически может написать свой собственный код для этого, но код будет непереносимым и ненадежным.

  • В Windows вам нужно будет объединить реестр.
  • В Linux вам нужно будет проверить очевидные места, где может быть установлено программное обеспечение.установлен, и надеюсь, что администратор / пользователь не решил сделать это по-другому.

И даже если вы можете точно определить, какое программное обеспечение (имеющее отношение к вам) установлено, вы 'У меня больше проблем.

  • Что если установлены два продукта базы данных?Что если нет?
  • Что если пользователь захочет использовать нелокальную СУБД?
  • Как насчет другой конфигурации, связанной с базой данных?База данных учетной записи / пароль?URL-адреса подключения?Логические базы данных и имена таблиц?
  • Etcetera.

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

1 голос
/ 08 марта 2012

Вы можете попробовать выполнить поиск необходимого приложения: определите операционную систему, затем просмотрите каталоги, в которые вы ожидаете установить приложение (% WINDRIVE% / Program Files, / Applications, / usr / share и т. Д.).

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

В Linux / UnixВы можете выполнить команду which , чтобы определить, установлено ли приложение, но я не уверен, насколько надежным оно будет (т.е. двоичный файл приложения недоступен через переменную PATH).

Другим (лучшим) способом было бы лучше узнать программирование ОС и API ОС и выполнить несколько системных вызовов через JNI.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Другой подход может заключаться в том, чтобы найти программу по умолчанию для расширения связанного файла и проверить, является ли это программа, которая вам требуется (то есть пользователь не имеет ..VLC Player, связанный с файлами .mdf).Если вы можете получить список всех программ, связанных с типом файла, то вы можете просто пролистать этот список.Обратите внимание, что это может быть менее надежно, чем в предыдущем решении, поскольку программе, которая вам нужна, может не соответствовать тип файла, связанный с ней.

0 голосов
/ 08 марта 2012

Вы можете проверить PATH, чтобы найти установленные программы. Тогда вы можете искать там известные программы.

Если найдено несколько программ или их нет, вы можете подсказать пользователю. В целом, подсказка пользователю может быть хорошей идеей: возможно, у пользователя есть 3-е решение и он может подключиться к вашей программе, или ваш поиск находит только одну программу xy, в то время как поиск не дал yx, то есть yx64 или yx2012 on его система.

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