我想將我的java程序中的參數傳遞給作爲命令行參數執行的C程序。這是我的C程序,用java的命令行參數調用C程序
#include <stdio.h>
int main(int argc, char *argv[]) {
if(argc == 2) {
printf("The argument supplied is %s\n", argv[1]);
}
else if(argc > 2) {
printf("Too many arguments supplied.\n");
}
else {
printf("One argument expected.\n");
}
}
這是我從終端編譯它時得到的輸出。
[email protected]:~/Desktop/jni$ ./a.out param1
The argument supplied is param1
我想從我的java程序傳遞參數(param1)到這個程序。我怎樣才能做到這一點?我嘗試使用java進程生成器,但它總是返回-1。
try {
ProcessBuilder processBuilder =
new ProcessBuilder("gcc", "/home/lclab/Desktop/jni/test.c", "param1");
Process proc = processBuilder.start();
System.out.println(proc.getInputStream().read());
return proc.getInputStream().read();
} catch (IOException e) {
e.printStackTrace();
return 99;
}
我的機器是ubuntu。
您需要先編譯您的C程序,然後_運行生成的可執行文件。 – Mat