我想将一些基于Java(实际上Clojure)的事件处理程序添加到HUGE传统C应用程序中。 这样做最直接,最容易维护的方法是什么?我希望Java类在与C代码相同的过程中运行。这甚至可能吗?
答案 0 :(得分:5)
Java Native Interface似乎就是为此设计的。特别是,规范的this section似乎是相关的。
答案 1 :(得分:5)
顺便说一句,这很容易使它“看起来”正确,但实际上正确地做起来要困难得多。为什么要让它们在同一个进程中运行?为什么不是同一个线程?
您可以考虑在C代码和Java进程之间建立通过TCP / IP的桥接器。这会更好,因为它可以避免维护意外。
您在考虑“维护意外,维护意外?”啊!今天你想从C调用Java,但明天有人会想要回到另一个方向。这就是你的麻烦变得真实痛苦的地方。
我以前来过这里。听从我的建议:做TCP / IP桥。这将使您的Java崩溃。 -Stosh
答案 2 :(得分:4)
java
命令的源代码可用。它提供了如何在C程序中创建Sun JVM的一个很好的示例。
OpenJDK上提供了Java 6(以及即将发布的JDK 7)版本。您可以在两个不同的许可证下{Java} 5 download source code。
答案 3 :(得分:0)
你可以这样做,但鉴于你真的想编写一个大型的C应用程序脚本,你考虑过GUILE还是Lua?他们两个制作就是为了这个目的。