java代码,执行lua脚本!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码,执行lua脚本!相关的知识,希望对你有一定的参考价值。

要在Java上使用Lua脚本,必须有关于Lua脚本解释器以及Java程序可以访问这些脚本的相关API,即相关类库。可以使用一个叫做LuaJava的开源项目,可以在www.keplerproject.org/luajava/ 找到LuaJava的类库以及源代码,使用文档资等 参考技术A Runtime.getRuntime().exec(command)追问

没看出可以执行lua脚本啊?

追答

运行环境装好,command就是运行命令

追问

我说的是安卓系统的java代码,就跟脚本精灵那样类似

Lua 脚本是不是在执行前加载到内存中?

【中文标题】Lua 脚本是不是在执行前加载到内存中?【英文标题】:Are Lua scripts loaded into the memory before execution?Lua 脚本是否在执行前加载到内存中? 【发布时间】:2017-09-08 07:03:12 【问题描述】:

我偶然发现了一个问题,我能够成功地将我的代码保存到 ESP8266 的闪存中,但是一旦启动,我就会收到“内存不足”错误。

代码本身不会创建很多对象。在我看来,代码大小本身就是问题所在。所以我想知道完整的代码是否真的会在执行过程中以纯文本形式加载到 RAM 中。

我还尝试了我的 Esplorer 中的编译和上传按钮,这似乎没有太大变化。 编译 Lua 实际上减少了多少代码大小?我原以为至少所有的空白开销都会消失。

【问题讨论】:

【参考方案1】:

是的,脚本在执行之前已加载到内存中。 如果 Lua 源是纯文本,则需要更多内存,因为 Lua VM 必须将其编译成字节码。通常,您可以在目标 Lua VM 之外预编译 Lua 源代码,请参阅 http://www.eluaproject.net/doc/v0.8/en_using.html,“交叉编译您的 eLua 程序”部分并且您需要在编译时去除调试信息。请参阅luac-s 选项。

【讨论】:

【参考方案2】:

我们有一章关于在您的计算机上为 ESP8266 交叉编译 Lua,https://nodemcu.readthedocs.io/en/dev/en/upload/#compiling-lua-on-your-pc-for-uploading

此外,如果您combine node.stripdebug() with node.compile()(即在设备上编译),您还可以减少应用程序的内存占用。

如果您使用require("XXX") 加载您的代码,那么这将自动搜索XXX.lc 然后XXX.lua

来源:https://nodemcu.readthedocs.io/en/latest/en/lua-developer-faq/#how-do-i-reduce-the-size-of-my-compiled-code

【讨论】:

以上是关于java代码,执行lua脚本!的主要内容,如果未能解决你的问题,请参考以下文章

lua代码暴力混淆--shell脚本

Android平台下使用lua调用Java代码经验总结

lua如何调用java程序

在JAVA中使用LUA脚本记,javaj调用lua脚本的函数(转)

autojs之lua

如何从java将变量传递给lua脚本? (io.lettuce.core)