Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Luaj/Java:org.Luaj.vm2.LuaError:循环或以前的错误加载模块_Java_Lua_Luaj - Fatal编程技术网

Luaj/Java:org.Luaj.vm2.LuaError:循环或以前的错误加载模块

Luaj/Java:org.Luaj.vm2.LuaError:循环或以前的错误加载模块,java,lua,luaj,Java,Lua,Luaj,我正在学习Luaj库,并试图在单元测试中实现双曲线示例: @Test public void testHyperbolicLuaScriptExample() throws Exception { URL luaScriptUrl = Thread.currentThread().getContextClassLoader().getResource("hyperbolic.lua"); Assert.assertNotNull(luaScriptUrl); String

我正在学习Luaj库,并试图在单元测试中实现双曲线示例:

@Test
public void testHyperbolicLuaScriptExample() throws Exception {
    URL luaScriptUrl = Thread.currentThread().getContextClassLoader().getResource("hyperbolic.lua");
    Assert.assertNotNull(luaScriptUrl);
    String luaScriptUrlPath = luaScriptUrl.getPath();
    File luaScriptFile = new File(luaScriptUrlPath);
    FileInputStream luaScriptFileInputStream = new FileInputStream(luaScriptFile);
    Prototype luaScriptPrototype = LuaC.instance.compile(luaScriptFileInputStream, "");
    Globals luaScriptStandardGlobals = JsePlatform.standardGlobals();
    LuaClosure luaClosure = new LuaClosure(luaScriptPrototype, luaScriptStandardGlobals);
    LuaValue luaValue = luaClosure.call();
}
双曲型。java
按照

以及hyberbolic.lua中的

require 'hyperbolic'

return {"x", hyperbolic.sinh(0.5), "y", hyperbolic.cosh(0.5)}
但是,测试会产生以下错误

org.luaj.vm2.LuaError: @hyperbolic.lua:3 loop or previous error loading module 'hyperbolic'
    at org.luaj.vm2.LuaValue.error(Unknown Source)
    at org.luaj.vm2.lib.PackageLib$require.call(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.call(Unknown Source)
    at org.luaj.vm2.lib.PackageLib$require.call(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.call(Unknown Source)
    at com.example.LuaScriptExecutionTest.testHyperbolicLuaScriptExample(LuaScriptExecutionTest.java:52)
这个错误意味着什么?我如何修复它

和hyberbolic.lua中的值(原文如此,应为双曲线)


您需要一个与发生
require
的文件同名的模块,这将导致一个循环(这就是错误消息的内容)。只需重命名当前文件(
双曲型.lua
),错误就会消失。

您好,您能澄清一下吗?什么文件应该重命名为什么新名称?David,您引用的示例使用
hyperbolicapp.lua
作为文件名。您需要将
双曲.lua
重命名为其他名称,例如
hyperboliccapp.lua
(显然,在
getResource(“双曲.lua”)
调用中更新它),错误就会消失。
org.luaj.vm2.LuaError: @hyperbolic.lua:3 loop or previous error loading module 'hyperbolic'
    at org.luaj.vm2.LuaValue.error(Unknown Source)
    at org.luaj.vm2.lib.PackageLib$require.call(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.call(Unknown Source)
    at org.luaj.vm2.lib.PackageLib$require.call(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.call(Unknown Source)
    at com.example.LuaScriptExecutionTest.testHyperbolicLuaScriptExample(LuaScriptExecutionTest.java:52)
require 'hyperbolic'