是否可以从Java运行C源代码?

现在我有一些C源代码,我想在我的java应用程序中使用它。 我需要执行C源代码,并将结果返回到我的java应用程序。 而不是将所有C源代码重写到java,我如何在我的Java应用程序中重用C的源代码?

看看Java Native Interface 。

Java Native Interface(JNI)是一个编程框架,它使在Java虚拟机(JVM)中运行的Java代码能够调用并由本机应用程序(特定于硬件和操作系统平台的程序)和用其他语言编写的库调用例如C,C ++和汇编。

有以下几种方式。

  1. JNI(见@AurelioDeRosa +1的回答)
  2. JNA
  3. 如果您的C程序可以作为命令行实用程序运行,为什么不只是使用Runtime.getRuntime()。exec()或ProcessBuilder执行它?

两种选择:

  1. 通过JNI或JNA访问库
  2. 创建一个可执行文件,并使用ProcessBuilder或Runtime.exec调用它,并在需要时捕获输出streem

是的可能看一看

从Java调用C代码