我想将一些基于 Java(实际上是Clojure)的事件处理程序添加到一个巨大的遗留 C 应用程序中。执行此操作的最直接且易于维护的方法是什么?我希望 Java 类与 C 代码在同一进程中运行。这甚至可能吗?
问问题
408 次
4 回答
5
Java Native Interface似乎就是为此而设计的。特别是,规范的这一部分似乎是相关的。
于 2009-04-20T20:40:53.247 回答
5
顺便说一句,这很容易让它“看起来”正确,但实际上要正确地做起来要困难得多。为什么你希望它们在同一个进程中运行?为什么不是同一个线程?
您可能会考虑通过 TCP/IP 在您的 C 代码和 Java 进程之间建立一座桥梁。这会更好,因为它可以避免维护意外。
你在想“维修惊喜,什么维修惊喜?” 啊! 今天你想从 C 调用 Java,但明天有人会想用另一种方式返回。那就是你的麻烦变得真正痛苦的地方。
我以前来过这里。接受我的建议:做 TCP/IP 桥接。这将防止您的 Java 崩溃。-斯托什
于 2009-04-21T02:04:03.233 回答
4
该java
命令的源代码可用。它提供了如何在 C 程序中创建 Sun JVM 的一个很好的示例。
Java 6 (和即将推出的JDK 7)版本在 OpenJDK 上可用。您可以在两种不同的许可下下载 Java 5 的源代码。
于 2009-04-20T20:53:04.760 回答
0
你可以这样做,但考虑到你真的想编写一个大型的 C 应用程序,你考虑过 GUILE 还是 Lua?他们都是为了这个目的而制造的。
于 2009-10-26T19:09:55.660 回答