用Java调用C程序

时间:2016-12-11 17:10:37

标签: java c call

我知道已经有一些关于此事的帖子,但他们都没有回答我的问题。

在这种情况下,我用C语言编写了程序但是我在java中开发了我的GUI。所以我需要做的就是在点击按钮或组合框时调用我的C程序。

为了做到这一点,是否可以只编译C程序然后在我的java界面中调用它? (如果有可能,我该怎么做?)。

或者我必须使用JNI? (我已经阅读了一些关于它的帖子,但仅仅为一个项目学习它似乎相当复杂。)

1 个答案:

答案 0 :(得分:1)

要获得最大的互操作性,您应该使用JNI,但作为一种简单的方法,只需编译C代码并使用Runtime.getRuntime().exec()从JAVA调用C可执行文件。

如果您在UNIX下阅读响应,则可以执行以下操作:

String line;
Process p = Runtime.getRuntime().exec( "/path/to/C/executable" );

BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null) {
    System.out.println(line);
}
in.close();