JNI:将Java与其他编程语言中的模块连接起来


JNI: Connecting Java with modules in other programming languages

如果我有一个Java后端,并且我有多个用非JVM语言编写的web层应用程序,如PHP、Python、Perl、Ruby、Node.js等,如果我想连接Java和非JVM部分,我可以使用JNI将它们绑定在一起吗?我知道有REST/SOAP web服务选项,但如果我使用JNI直接连接Java和非JVM部分,它是否比使用web服务更直接、更高效?有没有一种简单通用的方法可以使用JNI连接Java和所有其他非JVM语言?

我不知道简单和通用。除了JNI,还有

  1. 简化的包装器和接口生成器
  2. Java本机访问
  3. ActiveMQ
  4. 阿帕奇骆驼

但如果我是你的话,我真的会看看SWIG(例如上面的1号)。

您可能还想了解ApacheCommonsBean脚本框架。最后,列出的所有语言都有JVM可托管的对应语言。例如,Rhino和Quercus、Jython和jRuby、jerl和sisc。