Я пытаюсь запустить компиляцию clang из приложения Java.Это прекрасно работает, пока я не попытаюсь передать аргумент pkg-config.Например:
clang -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include `pkg-config --cflags --libs gtk+-2.0` -o file.o main.c
Строка, похожая на эту, прекрасно работает с терминала, но не работает с Java.Clang сообщает об ошибке «нет такого файла или каталога:». Ошибка pkg-config --cflags --libs gtk + -2.0`.
Я использую следующий код для запуска компилятора:
List<String> cmd = new LinkedList<String>();
cmd.add("clang");
cmd.add("-I/usr/lib/gcc/x86_64-linux-gnu/4.6/include");
cmd.add("`pkg-config --cflags --libs gtk+-2.0`");
cmd.add("-o");
cmd.add("file.o");
cmd.add("main.c");
Process proc = Runtime.getRuntime().exec(cmd.toArray(new String[0]));
...
Есть идеи, почему он прекрасно работает с терминала, но при вызове из Java точно такая же строка не срабатывает?