Как я могу встроить Lua в Java?

Является ли LuaJava обязательным для этого? Или я могу встроить Lua в Java без него?


person Community    schedule 21.01.2010    source источник
comment
Я предполагаю, что вы бы предпочли реализацию Lua на чистой Java (вместо LuaJava, которая использует нативные биты)? Или вы просто ищете альтернативную реализацию?   -  person ZoogieZork    schedule 22.01.2010
comment
Чистой Java-реализации LUA просто не существует и, вероятно, никогда не будет. Это проект C, и портирование всего этого C для кодирования java было бы огромной задачей, и я сомневаюсь, что авторы LUA видят в этом большую пользу.   -  person deltamind106    schedule 15.08.2018
comment
@deltamind106 на самом деле большая часть работы уже сделана, около 10 лет назад я перенес весь пакет Lua 5.1.4 на C# (и да, это было грандиозное предприятие). Я полагаю, что перенос с него на Java будет значительно проще.   -  person Mark Feldman    schedule 16.09.2020


Ответы (4)


LuaJ легко встраивается в Java. Мне пришлось изменить несколько строк их исходного кода, чтобы заставить его работать так, как я ожидал (это не требовало автоматической библиотеки ввода-вывода).

http://sourceforge.net/projects/luaj/

person Ben Ziegler    schedule 24.03.2010
comment
У меня аналогичная проблема с использованием Kahlua от IntelliJ. Я новичок в Lua и спотыкаюсь из-за ошибки, попытки индексировать нетаблицу всякий раз, когда я вызываю io.read(). Я пытался потребовать io, но это не работает. Помощь? - person Cliff; 03.02.2012
comment
Кто-нибудь сравнивает реализацию luaj и luajava? - person swcai; 27.03.2012

Попробуйте также kahlua и Мочалуа.

person lhf    schedule 21.01.2010
comment
Kahlua теперь находится на github, но не обновлялся с 2013 года. Похоже, Mochalua никогда не переносился из Google. Код и теперь заархивирован; на github есть 4 версии, но ни одну из них не трогали с 2015 года, и все они содержат только 7 оригинальных коммитов из версии Google Code от 8 декабря 2008 года. - person Pixelstix; 17.11.2020

Существует http://www.keplerproject.org/luajava/manual.html, но, по сути, lua больше подходит для интеграции с C. Однако существует множество других языков сценариев с хорошей интеграцией java. Для начала рассмотрите groovy, jruby или jython.

person Manfred Moser    schedule 21.01.2010
comment
в этом случае я застрял с lua, иначе я бы пошел с jython, будучи фанатом python - person ; 22.01.2010
comment
Встроить Jython тривиально, если это поможет: P - person gpampara; 22.01.2010

Lua — это библиотека C, вы можете встроить ее в Java, но вам придется связать виртуальную машину Java и Lua с некоторым кодом C.

Авторы LuaJava уже проделали эту работу — вам лучше использовать ее, чем писать свою собственную.

person nos    schedule 21.01.2010