簡體   English   中英

如何從Ubuntu中的Java程序運行C可執行文件

[英]How to run c executable file from a java program in 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");

請提出建議。

* nix之類的系統不對可執行文件使用* .exe后綴。

Runtime.getRuntime()。exec(“ / home / cori / Desktop / process”)

應該工作正常。 但是我仍然沒有得到您想要得到的結果。 您只能從Process類中獲得很少的流及其返回狀態。 對您來說, c程序應為0。(如果返回0,則結束於源代碼的結尾)。

並且:您提到的兩種方法是相同的。 剛開始使用調用方法鏈接的方法:)

我假設您有權訪問C代碼,因為我看到您正在嘗試對其進行編譯。

您是否考慮過使用Java Native Inteface? Java允許您調用非Java代碼,通常稱為本機代碼。

您必須遵循一系列步驟才能使其正常工作。 在此處查看示例http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html

  1. 使用本機方法創建Java類
  2. 加載實現該方法的庫
  3. 從Java調用本機方法
  4. 使用javah實用程序生成頭文件
  5. 創建C代碼以實現Java stub方法
  6. 編譯c程序tp create .so或.dll(取決於OS)
  7. 設置LD_LIBRARY_PATH
  8. 運行Java代碼

這是一個漫長的過程,需要一些反復試驗才能使其正確。 但是,一旦您弄清楚了,它就是一個非常強大的工具。 這是Java的非常老的功能,因此在線上有很多資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM