2009-08-20 2 views

ответ

0

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

Runtime rt= Runtime().getRuntime().execute("bash"); 
2

Вместо того, чтобы использовать Java для запуска Cygwin для вызова nutch, вы должны, вероятно, изучить интеграцию Nutch непосредственно с вашим Java-приложением. Есть некоторая документация here:

«Хотя веб-приложение Nutch - отличный способ начать поиск, большинство проектов, использующих Nutch, требуют, чтобы функция поиска была более тесно интегрирована с их приложением. , в зависимости от приложения. Двумя способами мы рассмотрим здесь использование Nutch API и использование OpenSearch API ».

+0

Там нет Cygwin, чтобы начать. Если вы имеете в виду командный файл cygwin, это просто запускает bash. – 2009-08-20 17:06:22

+0

@Neil: Да, я имел в виду бег bash, чтобы запустить Nutch. – Adamski

+0

... хотя, увидев ответ Хейвенда, я предполагаю, что я имел в виду «Вместо того, чтобы использовать Java для запуска другого исполняемого файла». – Adamski

0

Вы можете использовать любую программу Cygwin без прохождения через Cygwin, как и любое обычное консольное приложение Windows. Взгляните на Cygwin \ bin \ dir. Вы даже можете принести программы, которые вы хотите использовать в своем приложении, и вы принесете с собой копию CYGWIN1.DLL.

+2

Обратите внимание, что Cygwin DLL лицензируется GPL. Если вы хотите использовать функции Cygwin в своем собственном коде, либо ваш код должен также быть GPL, либо вам нужно приобрести лицензию не GPL от Red Hat. – 2009-08-20 17:05:10

0

Более интересным, более умным занятием станет запуск Nutch от Cygwin или использование реальной системы Linux/Unix.

0

Если вы пытаетесь запустить двоичный файл, который требует cygwin1.dll (который включает в себя большинство команд, которые можно выполнить с помощью Cygwin Баш оболочки), то вы можете запустить его, указав Cygwin \ каталог бен в переменной окружения путь как это:

Process p = Runtime.getRuntime().exec(
     "C:/path/to/cygwin/binary.exe", new String[] { "PATH=C:\\cygwin\\bin" }); 

Это предполагает, что вы установили Cygwin в C:\cygwin