LuaJ是lua的一个java版本的实现,使用LuaJ可以在java程序中调用lua程序,在lua程序中调用java程序,给java提供了脚本方便。
<!-- https://mvnrepository.com/artifact/org.luaj/luaj-jse -->
<dependency>
<groupId>org.luaj</groupId>
<artifactId>luaj-jse</artifactId>
<version>3.0.1</version>
</dependency>
在使用的时候,通过LuaJ可以实现LUA脚本和java的互相调用。
既可以通过java调用LUA脚本,也可以在LUA中调用java方法。
//指定lua脚本名
String script = "hello.lua";
//初始化lua运行时环境
Globals globals = JsePlatform.standardGlobals();
//通过Globals加载lua脚本
LuaValue chunk = globals.loadfile(script);
//运行lua脚本
chunk.call( LuaValue.valueOf(script) );
这基本是固定的步骤,这里做简单解释:
LuaValue对象用来表示在Lua语言的基本数据类型。
比如:Nil,Number,String,Table,userdata,Function等。
尤其要注意LuaValue也表示了Lua语言中的函数。所以,对于Lua语言中的函数操作都是通过LuaValue来实现的。
Globals 继承 LuaValue 对象,在创建Globals对象的同时,初始化了lua的基本功能。例如基本函数,基本库函数table等。
这个一般用的比较少,就不上传demo了。