我有一個使用Luaj 3.0庫的程序,我發現了一些我想包含的Lua腳本,但它們都需要Lua文件系統和penlight,並且每當我嘗試使用這些庫,它給出了一個錯誤。如何在Luaj中加載Lua-Filesystem和Lua-Penlight
有誰知道我應該如何利用這些在Luaj?
編輯: 有一點信息可能有幫助: 我有Archlinux 64位系統,安裝了open-jdk8 Luaj,lua-filesystem和lua-penlight。我找到了一組名爲Lua Java Utils的庫,我想將其包含在我的項目中。但它總是得到這樣的錯誤:
@luaJavaUtils/import.lua:24 index expected, got nil
線24以供參考:
local function import_class (classname,packagename)
local res,class = pcall(luajava.bindClass,packagename)
if res then
_G[classname] = class
local mt = getmetatable(class)
mt.__call = call -- <----- Error Here
return class
end
end
它需要的筆形電筒庫,又需要LUA文件系統,這就是爲什麼我安裝的兩個。我通過測試發現,通過嘗試運行lfs.currentdir()
,Lua文件系統未加載。我試過globals.load("local lfs = require \"lfs\"").call();
,但它也給出了一個錯誤。
我的Lfs庫位於/usr/lib/lua/5.2/lfs.so
,筆電位於/usr/share/lua/5.2/pl
。
至於我可以告訴大家,錯誤是固定的。在你鏈接到的線程中,他們說他們在beta 1中修復了這個問題,然後我查看了源代碼,看起來它正在使用路徑。 – user2752635 2014-08-29 13:02:54
我試過了,它沒有工作。無論如何,我應該如何使用它,因爲每當我嘗試直接調用這些文件時,都會出現錯誤。 – user2752635 2014-08-29 18:51:17
@ user2752635從我查看LuaJ的官方網頁,不支持C/C++庫,正如您在上面定義的那樣,您試圖加載一個在LuaJ中不可能的UNIX庫。 LuaJ和C API之間沒有任何關係。 '圖書館的編碼要與標準lua文檔中指定的行爲緊密匹配,以獲得關於圖書館API的詳細信息。 - 當仔細查看項目時,圖書館就像LuaC API一樣,但不是LuaC本身。並非Lua API的所有庫都可用於LuaJ。很遺憾,無法加載操作系統指定的庫。 – 111WARLOCK111 2014-08-30 07:30:14