如何从ubuntu中的java程序运行c可执行文件

时间:2013-12-05 13:18:42

标签: java c ubuntu

我无法从ubuntu中的java程序运行c可执行文件。

我使用以下命令创建了可执行文件:

gcc ex.c -o process

在java程序中,我尝试了所有可以找到但没有结果的内容。

Runtime.getRuntime().exec("/home/cori/Desktop/process.exe);

另一种方法

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("process");

请建议。

2 个答案:

答案 0 :(得分:0)

* nix like系统不对可执行文件使用* .exe后缀。

  

调用Runtime.getRuntime()。EXEC( “/家/ CORI /桌面/处理”)

应该可以正常工作。但我仍然没有得到你想得到的结果。您可以从Process类中获得的唯一内容是几个流及其返回状态。对于c程序,该程序应为0.(如果您返回0结束源代码的结尾)。

并且:你提到的两种方法是相同的。只是第一次使用调用方法链接:)

答案 1 :(得分:0)

我假设你有权访问C代码,因为我看到你试图编译它。

您是否考虑过使用Java Native Inteface? Java允许您调用非Java代码,通常称为本机代码。

您必须按照一系列步骤才能使其正常运行。 在这里查看示例 http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html

  1. 使用本机方法
  2. 创建Java类
  3. 加载实现方法的库
  4. 从Java调用本机方法
  5. 使用javah实用程序生成头文件
  6. 创建c代码以实现java存根方法
  7. 编译c程序tp create .so或.dll(取决于操作系统)
  8. 设置LD_LIBRARY_PATH
  9. 运行Java代码
  10. 这是一个漫长的过程,需要一些反复试验才能做到正确。但是一旦你搞清楚它就是一个非常强大的工具。这是Java的一个非常古老的特性,因此在线有很多资源。