Выполнить команду cl с Java Время выполнения из любого места - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь вызвать / выполнить команду компилятора C ++ с помощью Java Runtime.

Runtime runtime = Runtime.getRuntime();
String[] command = { "cl", "/P", "/EP", "/C", "-D", "LOC" + loc_file, file};
Process process = runtime.exec(command);
process.waitFor();

Однако я всегда получаю следующее сообщение об ошибке:

"Cannot run program "cl.exe" CreateProcess error=2, The system cannot find the file specified."

Очевидно, он не находит программу cl. Однако я действительно не знаю, как настроить среду выполнения Java, чтобы найти программу cl. Есть ли способ установить какую-то переменную PATH для поиска программы cl?

Если я хочу вызвать программу cl в cmd, мне сначала нужно запустить vcvars32.bat, который находится в C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build. Тогда я могу использовать программу cl как sh. Однако я понятия не имею, как я могу выполнить sh это с помощью Java кода.

1 Ответ

0 голосов
/ 05 августа 2020

В вашей ситуации, я думаю, есть два решения вашей проблемы:

1 Измените ПУТЬ в вашей системе и запустите программу в этой обновленной среде

Это то, что вы уже сделали вашим комментарием под вопросом.

Вы можете вручную добавить программу, которую хотите запустить, в «ПУТЬ» вашей системы, настроив переменные среды, а затем заново запустив программу java с обновленной средой.

2 В Eclipse измените переменную среды PATH только для своей программы

Поскольку вы упомянули, что используете Eclipse, существует альтернатива изменению PATH в конфигурации операционной системы.

В Run Configurations Eclipse есть вкладка Environment, на которой вы можете определить новые переменные среды или изменить существующие для вашей конкретной c программы. Здесь вы можете изменить PATH примерно так:

введите описание изображения здесь

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