2010-02-09 6 views

ответ

2

Вы действительно не запускаете make-файл, скорее, вы запускаете утилиту make и ищет файл под названием «makefile» или «Makefile» в вашем текущем каталоге и обрабатывает команды в этом файле. Поэтому вам нужно выполнить make из вашего приложения java. Вы можете сделать это через Runtime.exec(). Для получения дополнительной информации см http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exec%28java.lang.String%29 и http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

Один потенциальный вопрос вы должны смотреть на то, что make может или не может существовать на машине, что ваша программа работает на, и даже если он существует, то он может быть расположен в не стандартное расположение. На моей машине это /usr/bin/make, но она может быть расположена в другом месте. Будьте осторожны, чтобы объяснить это.

+4

И еще одна проблема заключается в том, что make-файлы, как правило, не переносятся. –

+0

@ Stephen C - Хорошая точка. – echo

+0

Ох спасибо, извините за то, что не отвечал в течение длительного времени. @echo спасибо за совет, я просто запустил make make для make-файла, а не из java. спасибо за ответы! –

0

Да. Вы можете использовать Runtime.exec для запуска приложения make. Однако, как уже указывалось ранее, вы должны учитывать условия, когда файл может отсутствовать или присутствовать в другом месте. Я предлагаю вам взглянуть на java.io.File javadoc, который предоставляет эту функциональность. Кроме того, не забудьте захватить поток ошибок для целей ведения журнала/отладки. Много раз программисты реализуют только входные и выходные потоки.