转帖的,原文是lua分支维护者所写
 
 
 
最近在游戏里要集成中国移动的 SDK,而这些 SDK 都是用 Java 编写的。由于我们整个游戏都是使用 Lua 开发的,所以就面对 Lua 与 Java 互操作的问题。

传统做法是先用 C/C++ 借助 JNI(Java Native Interface)编写调用 Java 的接口函数,然后再将这些函数通过 tolua++ 导出给 Lua 使用。这种做法最大的问题就是太繁琐,而且稍微有一点点修改,就要重新编译,严重降低了开发效率。

我尝试写了几个接口函数后,发现 JNI 提供了完善的接口来操作 Java,比如查找特定的 Class、Method 等等。既然有这些东西,我想完全可以实现一个很薄的转接层。这个层会提供一些函数,让 Lua 代码可以直接调用到 Java 的方法。

经过一番努力,LuaJavaBridge(简称 luaj)诞生了。

文章太长,请移步 http://dualface.github.com/blog/2013/01/01/call-java-from-lua/