【发布时间】:2017-04-26 14:33:11
【问题描述】:
我知道已经有一些关于此的帖子,但没有一个回答我的问题。
情况是这样的,我有用 C 编写的程序,但我用 java 开发了我的 GUI。所以我需要做的是,当我单击按钮或组合框时调用我的 C 程序。
为了做到这一点,是否可以只编译 C 程序,然后在我的 java 接口中调用它? (如果可能的话,我该怎么做?)。
或者我是否必须使用 JNI ? (我已经阅读了一些关于它的帖子,但是对于一个项目来说学习它似乎很复杂)。
【问题讨论】:
-
是的,你必须使用 JNI 从 Java 调用本机方法
-
如果您需要 C 代码与 Java 程序互操作,那么使用 JNI(或 JNA)是正确的解决方案。如果你只是想启动一个已编译的程序,那么你可以通过系统命令执行它(注意这会导致很多其他问题)
-
这不会有好的结局。你应该更仔细地考虑这一点。将该 C 程序移植到 Java。是时候了。你会省去很多心痛。通过重用 C 可执行文件所带来的“节省”并不值得。
-
谢谢,但我想我会使用下面提到的 Runtime.getRuntime().exec()。这是针对学校的一个项目,我们完成了教授提供的 C 文件,我知道使用 JNI 会更好,但我没有时间这样做。此外,我什至不知道 C 文件中使用的每个函数,所以我认为我无法将其移植到 Java 中。
-
很公平。听起来你的教授被困在 1990 年。太糟糕了。