在Lua中加载java函数

时间:2016-03-29 14:01:20

标签: java lua

简单问题:有没有办法在Lua中运行或加载java函数?

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

这是一个接收文件的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)
            --the filename is the last chunk to be received
            if string.match(data, ".jpg") then
                -- but strangely returns true 
                break
            end
        end
        socket.sleep(0.5)
    end
    --combineAndOpenImage(t)
end

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

public class FileChunk {
    private List<Data> dataList; 
    //functions below
}
public class Data{
    private byte[] fileData;
    // functions and adding file headers below
} // then UDPServer.java sends bytes of FileChunk

因此,lua函数接收的数据包很奇怪,这也导致string.match(data, ".jpg")返回true。所以我想运行java文件(例如UDPClient.java)以接收和解密块,而不是lua。

我不想更改服务器,也不想将客户端语言迁移到java。我没有找到任何关于此的资源,所以我需要帮助。

1 个答案:

答案 0 :(得分:1)

您需要创建一个包装库,例如C中的包装库。我不知道如何,但我希望这能为您提供方向感。