如何使Java和C程序一起通信

时间:2010-04-29 19:56:54

标签: java c android

我用C语言编写了一个命令行界面程序。这种程序(如您所知)等待在终端中键入的用户命令并依赖于它们作出反应。实际上,该程序实现了一个回调函数,该函数解析命令并调用适当的函数以响应用户。

现在,我必须为该程序的桌面(Ubuntu)版本制作一个Java GUI(图形用户界面),然后将相同的程序移植到Android平台(当然GUI会尊重Android框架),所以我我正在寻找最好的方法。

我听说过JNI和JNA,我不知道哪一个对我最好。顺便说一下JNI和JNA之间的主要区别是什么。

那么其他IPC技术和中间件(如DBUS)。

任何建议都将受到赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:4)

如果您的程序的功能通过命令行完全可用(并且它只能通过简单的命令而不是基于curses的全屏界面),那么将C接口与C程序接口可能会更容易通过命令行而不是搞乱JNI。

只需使用ProcessBuilder启动程序并通过其stdin和stdout流与之通信。