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

如果我有一个Java后端,并且有多个使用非JVM语言(如PHP,Python,Perl,Ruby,Node.js等)编写的Web层应用程序,并且如果我想要连接Java和非JVM片断,我使用JNI将它们绑定在一起? 我知道有REST / SOAP Web服务选项,但是如果我使用JNI直接连接Java和非JVM片断,那么比使用Web服务更直接更有效吗? 有没有一种简单而通用的方式来使用JNI连接Java和所有其他非JVM语言?

我不知道简单和普遍。 除了JNI,还有

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

但是如果我是你,我真的会看SWIG(例如上面的第一个数字)。

您也可以看看Apache Commons Bean脚本框架 。 最后,所有列出的语言都有JVM宿主对象。 例如, 犀牛和栎 , Jython和jRuby和jerl和杂种 。