2013-12-09 8 views
3

Я пытаюсь скомпилировать c-программу из java-программы на платформе Linux. Мой фрагмент.C компиляция программы из java-программы

Во время компиляции программы Java нет ошибки, но я не могу получить файл .o. Я пытался найти решения, но никто не работает. Любое предложение .....

+1

Отличается ли это, когда вы скомпилируете программу c вручную с теми же параметрами? – slayedbylucifer

+0

. Файл .o возможно появляется в текущем рабочем каталоге, что бы это ни было. – hyde

+0

Я вижу, что вы используете машину * nix правильно? Я заметил, что предоставление всего файла для файлов в этом поможет в большинстве ситуаций ..... – user2277872

ответ

3

Рабочий каталог по умолчанию дочернего процесса - это когда-либо каталог, который имеет процесс Java, как рабочий каталог, из которого обычно начинается его запуск. И по умолчанию gcc записывает выходные файлы в текущий рабочий каталог. Здесь вы найдете example.o.

Существует два простых способа решить эту проблему. Вы можете дать Gcc-o вариант и полный путь и имя требуемого выходного файла, или вы можете установить рабочий каталог дочернего процесса, как это:

ProcessBuilder processBuilder = 
    new ProcessBuilder("/usr/bin/gcc", "-c","example.c"); // source in working dir 
processBuilder.directory(new File ("/hipad/UserProject")); // or whatever 
Process proc = processBuilder.start(); 

Смотрите ProcessBuilder javadoc для получения дополнительной информации.

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