2012-02-13 43 views
2

有沒有一種方法可以讓我的程序在java中,但使所有的插件lua基於?我怎樣才能在所有語言中完成所有的鉤子等等,並且我可以訪問Java等函數?我寧願如果這是在運行時完成的,而不是預先使用交叉編譯器進行更改。在java中創建一個lua接口

+0

看看LuaJ - http://sourceforge.net/projects/luaj/。 – Perception 2012-02-13 03:12:11

回答

1

一種替代方案是LuaJava。它允許你在Java程序中使用Lua腳本。從字面上講,在Lua中實現接口:

LuaJava還允許Java使用Lua實現接口。這樣任何接口都可以在Lua中實現,並作爲參數傳遞給任何方法,並且在調用時,等效函數將在Lua中調用,並將結果傳回到Java。

這種實現的一個例子:

button_cb = {} 
function button_cb.actionPerformed(ev) ... end 
buttonProxy = luajava.createProxy("java.awt.ActionListener", button_cb) 

當然,你也可以從Java調用 「正常」 的Lua函數,使用熟悉的C API(適用於Java的)。

1

Lua Development Tools我們正在使用Metalua解析Lua源代碼,這可以通過JNLua來實現。您不僅可以從Java調用Lua代碼,而且Lua代碼還可以操作/實例化Java類!