![](/img/trans.png)
[英]How to execute multiple java programs in parallel from within a single program
[英]How can programs make Lua(or python) interpreter execute statements provided by the program?
我正在使用 Cent OS 7。
我想编写一个可以与 Lua 解释器交互的程序(用 Java 或其他语言编写)。 我希望我的程序可以将语句提供给 Lua 解释器,并实时执行,而以前的变量仍然可用。
例如,我的程序输入a = 4; print(a);
a = 4; print(a);
到 Lua 解释器4
打印在屏幕上。 然后程序执行其他工作。 稍后它提供n = 0; for i=1,4 do n = n + i; end; print(n);
n = 0; for i=1,4 do n = n + i; end; print(n);
到解释器,屏幕上会打印10
。
注意:我想要的只是 Lua 解释器在我的程序提供一个语句时执行语句,同时保持其先前的状态。 我的程序不需要访问 Lua 解释器中的变量。
我尝试单独调用 Lua 解释器,但它没有按预期工作。 另一种解决方案是记录所有以前的语句,并在新语句将要运行之前运行它们。 但这显然效率不高。
有没有简单的方法来做到这一点? 比如只是创建子进程和进行系统调用?
由于您的问题非常广泛(用任何语言解释 Lua 或 Python),我只能给您一些提示。
如果用 C 或 C++ 编写,则可以直接使用 Lua 库。 它可能允许您执行 Lua 语句,使 C 中的值对 Lua 代码可见,使 C 函数对 Lua 代码可用,以及访问 Lua 代码的值。
如果您使用 Java 编写,您可以为 Lua 库编写 JNI 包装器,或者使用另一个 Lua 实现。 看看我如何在 java 中嵌入 lua? .
对于其他语言,您基本上有相同的选择:要么使用(如果可用)您喜欢的语言中的其他一些实现,要么找到一种方法来从您的语言访问 C 库函数。 后者适用于大多数相关的编程语言。
对于 Python,情况类似。 例如,请参阅Java Python 集成和将 Python 与其他语言集成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.