2015-10-24 8 views
0

Я создаю приложение Java, которое в какой-то момент использует внешний exe. На данный момент я пытаюсь просто добавить этот exe как некоторую библиотеку, которую я могу использовать в вызове процесса, поэтому пользователю не нужно было устанавливать ее.Java вызов внешнего процесса - exe

Этот exe-файл представляет собой инструмент командной строки который производит некоторый результат, который далее обрабатывается приложением.

Так что мой вопрос в том, как включить exe-файл в приложение Java, вместо того, чтобы называть его системным процессом. Также приемлемым было бы, если бы этот exe был, например, в последней папке lib, где приложение java извлекло бы его и выполнило бы.

Я надеюсь, что это ясно и спасибо за любую помощь.

+1

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

ответ

1

Java взаимодействует с другими (родной) кода несколькими способами:

  • специально закодированы библиотеки через Java Native Interface (JNI)
  • внешних инструментов, порождая процесс ребенка с помощью Runtime.getRuntime().exec(...)
  • через сетевую связь

В первом случае полезно включить вашу библиотеку JNI в вашу программу Java. Разумно включить его в качестве ресурса класса в ваш JAR-файл, но это было бы против идей JAR-файлов (содержащих классы и ресурсы). Скорее всего, вы должны объединить библиотеку (для всех целевых платформ) с каким-то установочным пакетом (например, InstallAnywhere или другими)

Во втором случае нецелесообразно включать двоичный код в вашу программу Java (то есть в файле JAR). Скорее всего, он имеет (должен иметь) свою собственную процедуру установки, и ваш Java-код должен использовать соответствующую командную строку (PATH) для поиска исполняемого файла.

Я думаю, что третий случай не имеет отношения к делу.

+0

Спасибо, немного яснее, что я делаю сейчас. –

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