Java< - > C桥

时间:2012-02-06 08:34:18

标签: java c linux sockets rpc

我正在开发一个应用程序,该应用程序具有在Glassfish服务器上托管的Java Web界面和作为Linux守护程序实现的C内核。

我现在最大的问题是如何进行远程过程调用。我需要在两个方向上调用函数和方法。这些是我能想到的可能的解决方案:

  1. 使用Java Native Interface和网络套接字实现RPC。
  2. D-Bus - 据我所知,DBus可用于Java和C之间的RPC。
  3. 我想在不使用外部库或框架的情况下使用最基本的方法。 是否可以直接使用套接字调用Java和C之间的函数/方法?我使用的操作系统是Centos。

    是否有更优雅的方式来连接这两种语言?

1 个答案:

答案 0 :(得分:8)

没有外部库,只保留套接字。但我会将DBus归类为外部库,不是吗?

如果C程序可以使用套接字,则不需要Java Native Interface。 Java代码可以open sockets from Java,调用C代码侦听的套接字。

如果你允许DBus,也许你应该考虑过多的网络和RPC协议,这些协议都有C和Java的库。 (同样,不需要使用JNI。)

采用DBus方式,查看Java documentationtutorial