3

私はLuaJavaを介してJavaでのLuaスクリプトの使用法を学び始めています。私のIDEはEclipseです。

しかし、この単純なHello Worldスニペットを実行すると、Eclipseコンソールに出力がありません。

ここからコードスニペットを取得しました

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から呼び出されたときに何もしないのに、コンソールから実行されたときに完全に機能する理由を誰もが知っていますか?

4

1 に答える 1

2

私はそのような関数を試したり見たりしていません。hello()ただし、次のようにJavaから関数を呼び出すことができます。

LuaState l = LuaStateFactory.newLuaState();
l.doFile("main.lua");
l.getGlobal("hello");
l.call(0, 0);
于 2012-04-03T19:29:26.300 に答える