转自:http://univasity.iteye.com/blog/493339
-----------------------------------------
-- test01.lua
- function sum(a, b)
- return a+b
- end
- function test1(v)
- v:init()
- end
/////////////////////////////////////////////////////
// Test01.java
- public class Test01 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- LuaState L = LuaStateFactory.newLuaState();
- // 加载lua标准库,否则一些lua基本函数无法使用
- L.openLibs();
- // doFile
- L.LdoFile("res/test01.lua");
- //---------------------------------------------值传递测试
- // 找到函数 sum
- L.getField(LuaState.LUA_GLOBALSINDEX, "sum");
- // 参数1压栈
- L.pushNumber(100);
- // 参数2压栈
- L.pushNumber(50);
- // 调用,共2个参数1个返回值
- L.call(2, 1);
- // 保存返回值到result中
- L.setField(LuaState.LUA_GLOBALSINDEX, "result");
- // 读入result
- LuaObject lobj = L.getLuaObject("result");
- // 打印结果
- System.out.println(lobj.getNumber());
- //---------------------------------------------对象传递测试
- Value v = new Value();
- L.getField(LuaState.LUA_GLOBALSINDEX, "test1");
- try {
- L.pushObjectValue(v);
- } catch (LuaException e) {
- e.printStackTrace();
- }
- L.call(1, 0);
- v.print();
- }
- }
- class Value {
- private int i;
- public void init(){
- i = 111;
- }
- public void print(){
- System.out.println(i);
- }
- }
-
- luaInJava.rar (116.1 KB)
- 描述: 部分例子源代码
- 下载次数: 236
本文展示了如何在Java中通过Lua脚本实现简单的加法运算及对象传递,包括加载Lua库、执行Lua代码、调用Lua函数、参数传递和结果返回,以及对象实例的Lua方法调用。


1万+

被折叠的 条评论
为什么被折叠?



