«Вывод ... неправильный» не помогает никому диагностировать вашу проблему.Вы должны определенно дать результат, который вы ожидали, и результат, который вы видели из Java.Предполагая, что ваша программа небольшая, вы также должны опубликовать исходный код (поскольку в конце концов речь идет о процессе компиляции).
Кстати, что происходит, когда вы переходите к рабочему направлению Java?программу, найти исполняемый файл function
, который она генерирует, и вызвать ее самостоятельно из командной строки?Теперь вывод правильный?Ответ на этот вопрос позволит вам узнать, находится ли проблема на этапе компиляции или на этапе выполнения.
Если это выполнение, я рискну угадать такие вещи, как окружение (envvars, PATH и т. Д.), Нобез дополнительной информации трудно сказать.
Кроме того, как и во всех вопросах, касающихся Process
es, взгляните на эти распространенные подводные камни .Похоже, что вы делаете по крайней мере один из них (обычный, не потребляющий вывод), что может привести к тому, что ваша программа будет работать над тривиальным кодом C ++, но заходит в тупик на большей базе кода.
Вы также непроверяя вывод (либо возвращаемое значение, либо потоки stdout / stderr) шага компиляции, чтобы вы не знали, была ли компиляция успешной, и если нет, какие (полезные) сообщения об ошибках вы получили от компилятора.