0

LuaJavaで動作する単純な関数を取得しようとしています(2つの数値を追加します)。私は Lua の経験がほとんどなく、LuaJava の詳細なドキュメントを見つけることができなかったため、これが難しいと感じています。現在、lua から Java コンソールに出力できますが、それ以上のことはできません。

いくつかの方法を実装しようとしましたが、毎回同じエラーが発生します:

PANIC: unprotected error in call to Lua API (attempt to call a nil value)

これは私が使用しているコードです:

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

public class Hello {
    public static void main(String[] args) {
        LuaState l = LuaStateFactory.newLuaState();
        l.openLibs();
        l.LdoFile("main.lua");
        l.call(0, 0);
        l.getGlobal("add");
        l.pushInteger(1);
        l.pushInteger(1);
        l.call(2, 1);
        int result = l.toInteger(1);
        l.pop(1);
        System.out.println("1 + 1 = " + result); 
    }
}

そしてLuaファイル:

function add(a, b) 
    return a + b
end

私のIDEはEclipseです。助けてくれてありがとう。

4

1 に答える 1