私はLuaJを使用していますが、私は.lua
ファイルにたくさんの関数が入っています。これらの関数をJavaでLuaJで使用するためにインポートするにはどうすればよいですか?LuaJインポートLuaメソッド
2
A
答えて
3
1つのオプションは、ファイルをJavaコードにコンパイルしてインポートすることです。別の方法として、組み込み可能なインタプリタを使用してJavaコードから直接Luaファイルを呼び出す方法があります。
* EDIT *
ダウンロードしたドキュメントの良い例があります。 JavaソースコードへのLuaスクリプトをコンパイルするには、あなたがこのようなものだろう
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class LuaTest {
public static void main(String[] args) throws Exception {
String scriptFilePath = "/Users/developer/work/luaj-2.0.2/examples/lua/hello.lua";
Reader reader = new FileReader(new File(scriptFilePath));
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine e = mgr.getEngineByExtension(".lua");
Object result = e.eval(reader);
}
}
:
java -cp lib/luaj-jse-2.0.2.jar lua2java -s examples/lua -d . hello.lua
javac -cp lib/luaj-jse-2.0.2.jar hello.java
をこれらの例はかなりあるのJavaからスクリプトを実行するには、このような何かをするだろうあなたがLuajをダウンロードするときに取得するREADME.htmlから取ったものです。私は利用可能な機能をよく理解するために、最後まで読んでおくことを強くお勧めします。
1
私はこの同じ問題を自分自身で解決しようとしていましたが、この質問は1月からのものでしたが、この投稿は他の人に助けを求めるのに役立ちます。
test.java:
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.jse.JsePlatform;
public class test
{
public static void main(String[] args)
{
//run the lua script defining your function
LuaValue _G = JsePlatform.standardGlobals();
_G.get("dofile").call(LuaValue.valueOf("./test.lua"));
//call the function MyAdd with two parameters 5, and 5
LuaValue MyAdd = _G.get("MyAdd");
LuaValue retvals = MyAdd.call(LuaValue.valueOf(5), LuaValue.valueOf(5));
//print out the result from the lua function
System.out.println(retvals.tojstring(1));
}
}
test.lua:
function MyAdd(num1, num2)
return num1 + num2
end
関連する問題
- 1. LuaJ(Java)jarにコンパイル
- 2. intをLuaJでpushする
- 3. Luaでのメソッド宣言
- 4. インポートしないメソッド
- 5. 角4インポートisPropertyUpdatedメソッド
- 6. Lua:別の作業ディレクトリから相対インポートが失敗する
- 7. 一度に複数のluaファイルをインポートしますか?
- 8. LUA
- 9. LUA
- 10. Bustedテスト中の既存のluaファイルのメソッドをモックする
- 11. luaのC++メソッドをオーバーライドしてC++で呼び戻す
- 12. Lua table.sortメソッドはいつ安定しますか?
- 13. LuaでのLuaの処理方法C
- 14. 別のluaスクリプトからluaスクリプトをロード
- 15. Qt with Lua | luaファイルを置く場所
- 16. cinvoke-luaをLuaに移植する5.2
- 17. luaソケットクライアント
- 18. Lua:ルアスクリプト
- 19. Luaインクリメンタルパーサーライブラリ?
- 20. Luaの
- 21. Luaの
- 22. Luaの
- 23. はLUA
- 24. Javaクラス内でLuaj関数のパラメータ名を取得する方法は?
- 25. Kotlinでの静的メソッドのインポート
- 26. html to railsメソッドをインポートする(helper.rb内)
- 27. インポートのみクラスの静的メソッド
- 28. Pythonパッケージからメソッドをインポートする
- 29. メソッドへのインスタンス名前空間のインポート
- 30. Pythonのフォルダからメソッドをインポートする
私は、スクリプト言語を埋め込むには本当に新しいです。どうすればこのことができますか? – Anonymous
ダウンロードされたドキュメントにいくつかの良い例があります。インストールされているlua4jディレクトリのREADME.htmlを参照してください。 – Perception
私はしばらくそこを見ましたが、必要なものを見つけることができませんでした。私はluaファイルを実行する方法を示したチュートリアルに従っていましたが、ファイルから特定の関数を実行できるかどうかは疑問でした。 – Anonymous