我用Java编写了一个GUI,并使用lua脚本通过神经网络计算图像的一些值。因此,lua脚本需要来自torch7的一些模块。到目前为止,它找到了具有init.lua文件的模块。但是,当模块只有一个.so文件时,它会失败。该模块在其中一个init.lua文件中是必需的。在需要脚本中的模块之前,我将新的package.path和package.cpath分别设置为LUA_PATH和LUA_CPATH,因为luaj只使用了默认路径,这是不起作用的。
我认为这是一个LuaJ问题,因为当我在终端中使用lua script_name.lua运行脚本时,它工作得很好。
package.path = package.path .. ';/home/user/.luarocks/share/lua/5.1
/?.lua;/home/user/.luarocks/share/lua/5.1/?/init.lua;/home/user/torch
/install/share/lua/5.1/?.lua;/home/user/torch/install/share/lua/5.1
/?/init.lua;./?.lua;/home/user/torch/install/share/luajit-2.1.0-
beta1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1
/?/init.lua'
package.cpath = '/home/user/torch/install/lib/?.so;/home/user/.luarock
/lib/lua/5.1/?.so;/home/user/torch/install/lib/lua/5.1/?.so;./?.so;
/usr/local/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so'
require 'torch'
require 'nn'
require 'image'错误消息如下:
exception in thread "main" org.luaj.vm2.LuaError: @/home/user/torch/install/share/lua/5.1/paths/init.lua:1 module 'libpaths' not found: libpaths
no field package.preload['libpaths']
libpaths.lua
/home/user/.luarocks/share/lua/5.1/libpaths.lua
/home/user/.luarocks/share/lua/5.1/libpaths/init.lua
/home/user/torch/install/share/lua/5.1/libpaths.lua
/home/user/torch/install/share/lua/5.1/libpaths/init.lua
./libpaths.lua
/home/user/torch/install/share/luajit-2.1.0-beta1/libpaths.lua
/usr/local/share/lua/5.1/libpaths.lua
/usr/local/share/lua/5.1/libpaths/init.lua
no class 'libpaths'我从我的java程序中调用脚本:
public ScoreImage(){
G_ = JsePlatform.standardGlobals();
//G_.get("dofile").call( LuaValue.valueOf(changePath_));
G_.get("dofile").call( LuaValue.valueOf(script_));
}我使用lua 5.1是因为一些问题可以通过从lua 5.2更改到lua 5.1来解决。我有Ubuntu 14.04 LTS和luaj 3.0.1。
真的很感谢大家的帮助!
发布于 2016-02-24 02:34:17
LuaJ似乎没有能力加载dll文件和so文件。您可能需要查看jnlua:https://code.google.com/archive/p/jnlua/
https://stackoverflow.com/questions/35539359
复制相似问题