我已经成功地从 Java 代码执行了 C 代码,但我有一个问题,我想将值读入 C 程序从 Java 代码运行的 C 变量中。如何做到这一点?
我的 C 代码如下。
int main()
{
int op;
printf("\n Hello World... ");
printf("\n Enter any value : ");
scanf("%d",&op);
printf("\n The value entered is : %d",op);
getch();
return 0;
}
我的java代码如下。
import java.io.*;
public class Test {
public static void main(String args[]) {
try {
String s = " ";
Process processCompile = Runtime.getRuntime().exec("e:/Sample.exe");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(processCompile .getInputStream()));
// read the output from the command
System.out.println("EXE OUTPUT");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
那么,我必须在 Java 代码中做哪些修改,以便我可以将值输入到 C 变量。提前致谢
最佳答案
您需要使用 JNI,而不是 ProcessBuilder。或者您需要将这些值写入文件并从 C 中读取文件。或者您需要将这些值写入流程输入流。让您感到困惑的是,它被称为“outputStream”。
类似于:
OutputStreamWriter osw = new OutputStreamWriter(process.getOutputStream(), "utf-8");
osw.append(String.format("value1=%d value2=%d", value1, value2));
osw.flush();
然后在 C 中从标准输入读取该字符串。
关于java - 将值读入从 Java 代码运行的 C 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16647937/