在Lua中加载Java函数

简单 问题 :是否有方法在Lua内部运行或加载Java函数?

我正在尝试创建一个使用Lua的手机应用程序,在服务器和客户端之间传输文件。服务器使用Java而客户端使用Lua。

这是一个接收文件的Lua函数

function UDPClientModule.receiveFile()
    local data, status
    local chunks = {}
    while true do
        data, status = udp:receive()
        print("status: ", status)
        if data ~= nil then
            table.insert(chunks, data)
            --文件名是最后一个接收到的块
            if string.match(data, ".jpg") then
                --但奇怪的是结果为true
                break
            end
        end
        socket.sleep(0.5)
    end
    --combineAndOpenImage(t)
end

到目前为止没有任何问题。但是,服务器发送的块被封装在一个类似于这样的类中:

public class FileChunk {
    private List<Data> dataList;
    //以下为函数
}
public class Data{
    private byte[] fileData;
    //以下为函数和添加文件头
} //然后UDPServer.java发送FileChunk的字节

由于这个原因,Lua函数接收到的数据包是奇怪的,这也导致 string.match(data, ".jpg") 返回true。因此,我想运行Java文件(例如UDPClient.java)来接收和解密块,而不是使用Lua。

我不想改变服务器或将客户端语言迁移到Java。我没有找到有关此问题的任何资源,因此需要帮助。

点赞
用户3188999
用户3188999

你需要创建一个包装库,比如 C 语言中的包装库。我不知道怎么做,但我希望这能给你提供一个方向感。

2016-04-05 15:38:01