我正在开发一个应用程序,该应用程序具有在Glassfish服务器上托管的Java Web界面和作为Linux守护程序实现的C内核。
我现在最大的问题是如何进行远程过程调用。我需要在两个方向上调用函数和方法。这些是我能想到的可能的解决方案:
我想在不使用外部库或框架的情况下使用最基本的方法。 是否可以直接使用套接字调用Java和C之间的函数/方法?我使用的操作系统是Centos。
是否有更优雅的方式来连接这两种语言?
答案 0 :(得分:8)
没有外部库,只保留套接字。但我会将DBus归类为外部库,不是吗?
如果C程序可以使用套接字,则不需要Java Native Interface。 Java代码可以open sockets from Java,调用C代码侦听的套接字。
如果你允许DBus,也许你应该考虑过多的网络和RPC协议,这些协议都有C和Java的库。 (同样,不需要使用JNI。)
采用DBus方式,查看Java documentation和tutorial。