Java调用Lua(转)

Java 调用 Lua

app发版成本高,覆盖速度慢,覆盖率页低。一些策略上的东西若是可以从服务端控制会方便一些。
因此考虑使用Lua这种嵌入式语言做为策略实现,Java则是宿主语言。html

整体上看是一个模板方法模式。Lua提供模板方法,其中须要的一些具体实现则有宿主语言Java提供。java

1. Luaj:Java与Lua的桥梁

可以做为Java与Lua进行通讯的桥梁工具还有别的一些。
可是Luaj 是用纯Java实现,客户端容易加载。且目前还一直有更新和维护,相对感受靠谱。闭包

须要注意的是: 新版的LuaJ3.0是针对Lua5.2开发的,对Lua5.1会有不兼容的部分(例如module函数不能用了)
若是使用Lua5.1,则能够使用LuaJ2.0.3app

更详细的介绍函数

2. 使用

2.1 java工程引用jse的jar包

这个简单,下载LuaJ2.0.3版,解压,加载lib/luaj-jse-2.0.3.jar
lib/里边还有个jme,这个是针对j2me环境的。工具

2.2 示例介绍

功能
实现一个生成时间相关的参数的功能
value = (int)(timestamp / 1000 ) ^ (int)(timestamp / 400)
^ 符号表示按位异或。ui

其中:
– 整个式子的计算流程由lua提供模板方法
– 除法后取整的功能由lua以module方式提供
– lua没有原生的位操做,因此这部分由java提供
– lua原生的os.time()依赖系统,因而timestamp方法由java提供,生成秒级时间戳lua

文件目录说明spa

 

 

2.3 具体实现

接下来就看4个文件的具体代码吧。请着重注意注释,要说的都在里边了
Calc.java:code

 

 

Math.java

 

 

lua程序就简单多了
gen.lua

 

 

div.lua

 

 

3.总结

整体上来讲调用起来还算容易,只是文档有些缺少。
若是要用Lua5.2则必须用LuaJ3.0。LuaJ3.0和2.0.3仍是有一些不同的,能够参考前文提到的详细介绍。

http://levelup.sinaapp.com/

相关文章
相关标签/搜索