Позвоните в Cygwin из приложения Java - PullRequest
0 голосов
/ 18 января 2011

Мне нужно вызвать Cygwin из кода Java (пример: вызвать команду make в Cygwin из приложения Java, которое работает на Linux и Windows). Кто-нибудь имеет опыт решения этой проблемы?

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Я думаю, вы должны различать свой код для Linux и Windows

  • в Linux просто выполните команду
  • в windows запускает вашу команду в cygwin с помощью

C:\cygwin\bin\bash.exe --login -i -c <cmd>

примечание: вы можете использовать apache commons exec для запуска внешней команды из java

2 голосов
/ 18 января 2011

Использование ProcessBuilder из Java:

http://download.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

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

Также обратите внимание, что многие «возможности» cygwin (например, less, awk, sed и т. Д.) Являются просто двоичными файлами (исполняемыми файлами), которые вы можете вызывать напрямую - нет необходимости в оболочке bash для облегчения доступа к ним.Посмотрите на фактические файлы в том месте, где находится ваша папка bin (обычно это c: / cygwin / bin), и попробуйте вызвать их непосредственно из ProcessBuilder.Если вам действительно нужно использовать оболочку (например, каналы, переменные, globbing и т. Д.), То это уже другая история - вам нужно интегрироваться с самим файлом bash.exe (проверьте страницу руководства для получения информации об использовании).

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