如何从C进程中启动Java?

Art*_*ldt 1 c java java-native-interface multithreading clojure

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

jsi*_*ght 5

Java本地接口似乎是专为这一点.特别是,规范的这一部分似乎是相关的.


joh*_*osh 5

顺便说一句,这很容易使它"看起来"正确,但实际上更难以正确执行.为什么要让它们在同一个进程中运行?为什么不是同一个线程?

您可以考虑在C代码和Java进程之间通过TCP/IP建立桥接.这会更好,因为它可以避免维护意外.

您在考虑"维护意外,维护意外吗?" 啊! 今天你想从C调用Java,但明天有人会想要回到另一个方向.这就是你的麻烦变得真实痛苦的地方.

我以前来过这里.听从我的建议:做TCP/IP桥.这将使您的Java崩溃.-Stosh