【问题标题】:LuaJ require json module in javaLuaJ在java中需要json模块
【发布时间】:2014-02-17 15:03:29
【问题描述】:

我试图在 Java 代码中加载 json 模块。文档中的示例显示它应该像这样,但它不起作用。它要求模块在项目中还是从 LUA_PATH 加载它。有人有这个问题的经验吗?

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

线程 "main" org.luaj.vm2.LuaError 中的异常:模块 'json' 不是 发现:json 没有字段 package.preload['json'] json.lua 没有类 'json'

看起来它只是在 LuaJ 包中尝试。

【问题讨论】:

    标签: java lua luajava luaj


    【解决方案1】:

    如果您使用的 json 模块是用 lua 编写的,那么它需要像任何其他 lua 模块一样位于 package.path 中。

    如果它是用 java 编写的,那么 LuaJ 需要能够在正常的 Java 类路径中找到 json.class。

    【讨论】:

    • 我在 Eclipse 中开发,这将是“package.path”的绝对路径?它已经在 LUA_PATH/lua 中。那对我来说是“C:\Program Files (x86)\Lua\5.1\lua”。
    • 运行一个 lua 脚本,上面写着print(package.path)
    • 我会在这件事上赌一把,但把 json.lua 放在你的 Eclipse 项目的顶级目录中,看看它是否有效。
    • 将 lua_path 添加到 package.path 使其向前发展。但是 Json 库是用 lua 编写的,它需要一个 lpeg.dll 模块,通常应该从 lua 导入。
    • 不能使用纯 Lua json 模块?然后它应该可以正常工作。这似乎是一个带有 Luaj 绑定的 lpeg 项目,只是 Google luaj lpeg,但它是否有效可能取决于您使用的 luaj 版本。
    猜你喜欢
    • 2013-04-06
    • 2014-05-30
    • 2014-06-12
    • 2018-09-21
    • 2014-08-25
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多