如何让Java和C程序一起通信
我用C语言编写了一个命令行接口程序。这类程序(如您所知)等待在终端中键入的用户命令,并根据这些命令做出反应。实际上,程序实现了一个回调函数,该函数解析命令并调用相应的函数来响应用户
现在,我必须为这个程序的桌面(Ubuntu)版本制作一个Java GUI(图形用户界面),然后将同一个程序移植到Android平台(当然GUI会尊重Android框架),所以我正在寻找最好的方法
我听说过JNI和JNA,但我不知道哪一个对我来说是最好的。顺便问一下,JNI和JNA之间的主要区别是什么
那么其他IPC技术和中间件(比如DBUS)呢
如有任何建议,将不胜感激
提前谢谢
# 1 楼答案
如果您的程序的功能完全可以通过命令行使用(并且它只通过简单的命令而不是基于curses的全屏界面工作),那么通过命令行将GUI界面与C程序连接起来可能会更容易,而不是与JNI混为一谈
只需使用ProcessBuilder启动程序,并通过其stdin和stdout流与之通信