如何从C进程中启动Java?

时间:2009-04-20 20:37:11

标签: java c multithreading clojure java-native-interface

我想将一些基于Java(实际上Clojure)的事件处理程序添加到HUGE传统C应用程序中。 这样做最直接,最容易维护的方法是什么?我希望Java类在与C代码相同的过程中运行。这甚至可能吗?

4 个答案:

答案 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?他们两个制作就是为了这个目的。