LuaJ требует модуль json в java

Я пытаюсь загрузить модуль json в код Java. Пример в документе показывает, что так должно быть, но это не работает. Требуется ли, чтобы модуль был в проекте, или он загружает его из LUA_PATH. у кого-нибудь есть опыт в этом вопросе?

Globals globals = JsePlatform.standardGlobals();
globals.get("require").call( LuaValue.valueOf("json") );

Исключение в потоке «основной» org.luaj.vm2.LuaError: модуль «json» не найден: json нет поля package.preload ['json'] json.lua нет класса «json»

Похоже, он пытается только в пакете LuaJ.


person alknows    schedule 26.01.2014    source источник


Ответы (1)


Если модуль json, который вы используете, написан на lua, то он должен находиться в package.path, как и любой другой модуль lua.

Если он написан на java, тогда LuaJ должен будет найти json.class в обычном пути к классам Java.

person Alex    schedule 27.01.2014
comment
Я разрабатываю в Eclipse, какой будет абсолютный путь к package.path? Он уже находится в LUA_PATH/lua. Для меня это C:\Program Files (x86)\Lua\5.1\lua. - person alknows; 27.01.2014
comment
Просто запустите lua-скрипт, который говорит print(package.path). - person Alex; 27.01.2014
comment
Я рискну и поставлю json.lua в каталог верхнего уровня вашего проекта Eclipse и посмотрю, сработает ли это. - person Alex; 27.01.2014
comment
Добавление lua_path в package.path продвинуло его вперед. Но библиотека Json написана на lua, и для нее требуется модуль lpeg.dll, который обычно следует импортировать из lua. - person alknows; 27.01.2014
comment
Не можете использовать чистый модуль Lua json? Тогда должно работать нормально. Кажется, это проект lpeg с привязками Luaj, просто Google luaj lpeg, но работает он или нет, может зависеть от того, какую версию luaj вы используете. - person Alex; 28.01.2014
comment
jnlua поддерживает загрузку файлов dll и других библиотек: code.google.com/archive/p/jnlua< /а> - person Scott Wardlaw; 23.02.2016