我有一個C可執行文件,我可以從CYGWIN運行它。我也想從JAVA運行相同的文件。 C程序通過stdin和stdout獲取輸入和輸出。它主要獲取字符串並輸出字符串。與C可執行文件通信從Java
我想我可以成功地使用流程構建器啓動程序。但是我無法與C程序交互。要啓動.exe我使用ProcessBuilder,請參閱以下內容。
Process cmd = new ProcessBuilder("path to exe").start();
我的C程序的主要方法是在這裏:
int main(argc, argv)
{
/* set command line or config file parms */
config(argc, argv);
/* read grammar, initialize parser, malloc space, etc */
init_parse(dir, dict_file, grammar_file, frames_file, priority_file);
/* for each utterance */
while(fgets(line, LINE_LEN-1, fp)) {
/* assign word strings to slots in frames */
parse(line, gram);
/* print parses to buffer */
for(i= 0; i < num_parses; i++)
print_parse(i, out_ptr, extract, gram);
/* clear parser temps */
reset(num_nets);
}
}
我的目標是將輸入發送和從Java得到的輸出。
此代碼執行用C語言編寫的解析器。我需要以某種方式與解析器通信,這是與它通信的接口。 –