Luaj学习笔记(一) - 快速入门小Demo
目录
获取Luaj开发环境
方法一:从SourceForge下载
Luaj在SourceForge的主页:https://sourceforge.net/projects/luaj/
直接下载最新版本的Luaj:https://sourceforge.net/projects/luaj/files/latest/download
方法二:Maven依赖
在项目的pom.xml文件中添加Maven依赖项.
<!-- https://mvnrepository.com/artifact/org.luaj/luaj-jse -->
<dependency>
<groupId>org.luaj</groupId>
<artifactId>luaj-jse</artifactId>
<version>3.0.1</version>
</dependency>
入门Demo
入门示例Demo分为两种:
1. 输出Hello,World
2. 执行Lua脚本文件
示例一:输出Hello,World
编写Java代码
执行一条简单的Lua代码print 'Hello World!
String luaStr = "print 'Hello World!'";
Globals globals = JsePlatform.standardGlobals();
LuaValue lv = globals.load(luaStr);
lv.call();
执行结果
Hello World!
示例二:执行Lua脚本文件
创建Lua文件
在项目根目录下创建目录及文件 script/test.lua
,在该Lua脚本中编写Lua代码:
--圆周率
function pi()
return 3.1415
end
--圆的面积
function circle_area(radius)
return pi()*radius*radius
end
编写Java代码
// lua脚本文件所在路径
String luaPath = "script/test.lua";
Globals globals = JsePlatform.standardGlobals();
// 加载脚本文件script/test.lua,并编译
globals.loadfile(luaPath).call();
// 获取函数:pi()
LuaValue func = globals.get(LuaValue.valueOf("pi"));
// 执行pi()方法获取圆周率
double pi = func.call().todouble();
System.out.println("圆周率:" + pi);
// 获取带参函数circle_area()
LuaValue func1 = globals.get(LuaValue.valueOf("circle_area"));
// 执行circle_area方法,传入double类型的半径参数
double area = func1.call(LuaValue.valueOf(3.0)).todouble();
// 打印lua函数回传的数据
System.out.println("半径为3.0的圆形面积为:" + area);
执行结果
圆周率:3.1415
半径为3.0的圆形面积为:28.2735
参考资料
- 《从零开始搭建游戏服务器》Java与Lua互相调用:https://blog.csdn.net/linshuhe1/article/details/69581584/