【发布时间】:2011-06-15 05:38:58
【问题描述】:
使用 NO 库在 C 程序中嵌入 JVM 的推荐方法是什么。这意味着 JVM 作为 eDSL 执行引擎。 (不是整个 Java 平台环境)我正在尝试使用另一种基于 JVM 的语言而不是 Java 本身。
【问题讨论】:
-
我记得自己玩过 JamVM。它很小,用 C 语言编写,嵌入起来相当容易。但是它依赖于相当大的GNU Classpass,并且虚拟机在嵌入式环境中表现不佳,所以我最终编写了自己的Java机器。但如果您正在开发桌面应用程序,您可能会考虑将 JamVM 作为一种选择。
-
澄清“没有图书馆”。您选择了哪种 VM 实现?它提供了一个静态 JVM 实现来链接到您的代码?基于 DSO (DLL/SO) 的版本已记录在案,并且可能是 JNI 标准的一部分,用于与其他本机代码集成。鉴于您使用的是另一种基于 JVM 的语言,您可能不会遇到前面评论者指出的 GNU Classpath 问题。
-
为了清楚起见:您似乎正在尝试创建自己的 DSL,您计划将其解析为 JVM 字节码,并且您需要将 JVM 实现嵌入到您的系统中以执行生成的字节码。我说的对吗?