我之前看过这个问题,并尝试按照发布的解决方案。不幸的是,他们没有工作。我正在尝试创建一个简单的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程序。我认为这不会很难。在此先感谢,如果您需要更多信息,请询问。
答案 0 :(得分:0)
您是否有任何特殊原因通过命令行执行可执行文件?作为一个Windows用户,我可能会遗漏一些东西,但肯定只有以下内容才能起作用:
String[] cmd = {fullFilePath, Param};
Runtime.getRuntime().exec(cmd);
(假设fullFilePath
确实是可执行文件的完整绝对路径。)
答案 1 :(得分:0)
尝试使用sh
: -
String[] cmd = {"/bin/sh", "-c", fullFilePath, Param};
Runtime.getRuntime().exec(cmd);
答案 2 :(得分:0)
错误126的原因是"权限问题或命令不是可执行文件"。
首先确保您的文件可以从命令行执行。您可能必须首先使用chmod设置执行位。
chmod a+x <filename>