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

时间:2011-02-14 20:50:58

标签: java unix terminal

我之前看过这个问题,并尝试按照发布的解决方案。不幸的是,他们没有工作。我正在尝试创建一个简单的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程序。我认为这不会很难。在此先感谢,如果您需要更多信息,请询问。

3 个答案:

答案 0 :(得分:0)

您是否有任何特殊原因通过命令行执行可执行文件?作为一个Windows用户,我可能会遗漏一些东西,但肯定只有以下内容才能起作用:

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

(假设fullFilePath确实是可执行文件的完整绝对路径。)

BTW:其他程序是用Objective-C编写的,这几乎肯定无关紧要。

答案 1 :(得分:0)

尝试使用sh: -

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

答案 2 :(得分:0)

错误126的原因是"权限问题或命令不是可执行文件"。

首先确保您的文件可以从命令行执行。您可能必须首先使用chmod设置执行位。

chmod a+x <filename>