我开始通过LuaJava学习Java中的Lua脚本用法。我的IDE是Eclipse。

但是,当我执行这个简单的Hello World片段时,Eclipse控制台中没有输出。

here取得了代码片段

package com.cpg.lua;

import org.keplerproject.luajava.LuaState;
import org.keplerproject.luajava.LuaStateFactory;

public class Hello
{
public static void main(String[] args)
{
  LuaState luaState;
  luaState = LuaStateFactory.newLuaState();
  luaState.openLibs();
  luaState.LdoFile("hello.lua");
  luaState.close();
}
}

hello.lua
function hello()
    print("Hello World from Lua!")
end

hello()

但是下面的脚本运行良好。

hello2.lua
print("Hello World from Lua!")

任何人都知道为什么当从Java调用但通过控制台执行时,带有函数定义的脚本什么都不做呢?

最佳答案

我还没有尝试过或看到过这样的函数。但是您可以像这样从Java调用hello()函数:

LuaState l = LuaStateFactory.newLuaState();
l.doFile("main.lua");
l.getGlobal("hello");
l.call(0, 0);

08-16 22:52