簡體   English   中英

在Java(OS X)中運行Unix可執行的Objective-C文件

[英]Running a Unix Executable Objective-C file in Java (OS X)

我之前已經看到過這個問題,並嘗試遵循發布的解決方案。 不幸的是,他們沒有工作。 我正在嘗試制作一個簡單的Java程序,該程序可以使用輸入參數運行已編譯的Objective-C程序(Unix可執行文件)。 以下是我嘗試過的Java嘗試似乎不起作用的嘗試:

String[] cmd = {"/bin/bash", fullFilePath, Param};
Runtime.getRuntime().exec(cmd);

對於“調用的命令無法執行”,這將導致處理器錯誤126。 我嘗試了其他效果不佳的變體,例如:

String[] cmd = {"/bin/bash fullFilePath \"Param\""};
String[] cmd = {"/usr/bin/open fullFilePath \"Param\""};

關於如何使它起作用的任何建議或想法? 我只需要使用參數在Java中運行已編譯的Objective-C程序。 我想這並不難。 在此先感謝您,如果您需要更多信息,請詢問。

您通過命令行執行可執行文件是否有任何特殊原因? 作為Windows的一員,我可能會缺少一些東西,但是肯定只有以下內容可以工作:

String[] cmd = {fullFilePath, Param};
Runtime.getRuntime().exec(cmd);

(假設fullFilePath實際上是可執行文件的完整絕對路徑)。

順便說一句:另一個程序實際上是用Objective-C編寫的,這一事實幾乎是無關緊要的。

嘗試使用sh :-

String[] cmd = {"/bin/sh", "-c", fullFilePath, Param};
Runtime.getRuntime().exec(cmd);

錯誤126的原因是“權限問題或命令不是可執行文件”。

請確保首先從命令行執行文件。 您可能需要首先設置執行位使用chmod。

chmod a+x <filename>

暫無
暫無

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

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