在Java中创建Lua接口

有没有办法让我用 Java 编写程序,但是所有的插件都是基于 Lua 的?如何在两种语言之间处理所有的钩子,还能从 Java 中访问函数等内容?我希望这个转换是在运行时完成的,而不是使用交叉编译器事先将其更改。

原文链接 https://stackoverflow.com/questions/9255095

点赞
stackoverflow用户1051634
stackoverflow用户1051634

Lua Development Tools 中,我们使用 Metalua 对 Lua 源代码进行分析,而这是通过 JNLua 实现的。你不仅可以从 Java 调用 Lua 代码,而且 Lua 代码还可以操纵 / 实例化 Java 类!

2012-02-13 21:08:32
stackoverflow用户221509
stackoverflow用户221509

一种选择是 [LuaJava] (http://www.keplerproject.org/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)

' '' '

当然,您还可以使用熟悉的 C API(适用于 Java)从 Java 调用“正常”的 Lua 函数。

2012-02-13 23:15:04