【问题标题】:How to make Java and C programs communicate together [closed]如何使 Java 和 C 程序一起通信 [关闭]
【发布时间】:2010-04-29 19:56:54
【问题描述】:

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

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

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

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

任何建议将不胜感激。

提前致谢。

【问题讨论】:

  • 您的 C 和 Java 程序可以通过命名管道或套接字等进行通信......

标签: java c android


【解决方案1】:

如果您的程序的功能完全可以通过命令行使用(并且它只能通过简单的命令而不是基于 curses 的全屏界面来工作),那么只有带有 C 程序的 GUI 界面可能会更容易通过命令行而不是弄乱 JNI。

只需使用ProcessBuilder 启动程序并通过其标准输入和标准输出流与其通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    相关资源
    最近更新 更多