【发布时间】:2017-08-09 17:15:42
【问题描述】:
我想将参数从我的 java 程序传递给作为命令行参数执行的 C 程序。这是我的 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");
}
}
这是我从终端编译时得到的输出。
lclab@lclab:~/Desktop/jni$ ./a.out param1
The argument supplied is param1
我想将参数(param1)从我的 java 程序传递给这个程序。我怎样才能做到这一点?我尝试使用 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程序,然后运行生成的可执行文件。
标签: java c command-line-arguments