在特定文件夹中从java执行shell命令

在特定文件夹中从java执行shell命令,java,shell,netbeans,command,execute,Java,Shell,Netbeans,Command,Execute,我有一个C代码,我已经编译并添加到path中,以便能够在任何地方执行它(我已经仔细检查了我是否可以这样做) 现在我想做一个GUI,以更简单的方式使用它。我要求用户输入一个文件和一个输出目录 在一个单击按钮中,我输入了从GUI执行命令的代码: String command = "myprogram -e " + file; new ExecuteShellInstruction().main(command,jTextOutputDirectory.getText()); 我在其他类中执行代码:

我有一个C代码,我已经编译并添加到path中,以便能够在任何地方执行它(我已经仔细检查了我是否可以这样做)

现在我想做一个GUI,以更简单的方式使用它。我要求用户输入一个文件和一个输出目录

在一个单击按钮中,我输入了从GUI执行命令的代码:

String command = "myprogram -e " + file;
new ExecuteShellInstruction().main(command,jTextOutputDirectory.getText());
我在其他类中执行代码:

p = Runtime.getRuntime().exec(command, null, new File(directory));
但我总是犯这样的错误:

java.io.IOException: Cannot run program "myprogram" (in directory "/Users/user_name/Documents/folder/example"): error=2, No such file or directory
我已经检查过了,如果我从同一个文件夹中写的内容完全相同,就没有问题

你知道我在做什么吗?如果我是从一个被标记为正确的问题中得到这个方法的,也许我遗漏了什么,但是我已经试了一个小时了,似乎什么都不起作用


谢谢大家!

我终于找到了解决办法。 似乎您必须告诉您,您的应用程序可以通过在开始处添加“/”来执行。大概是这样的:

String command = "./myprogram -e " + file;

它清楚地表明它无法在当前工作环境中找到该文件directory@ShreyasSarvothama是的,它是这么说的。但是正如我所提到的,当我从shell直接在该目录中进行操作时,它工作得非常完美..但是您在哪里使用java代码。。首先设置目录,然后运行它。。shell默认目录不同,java工作目录不同different@ShreyasSarvothama对不起,我不明白你的意思。据我对getRuntime().exec方法的理解,我将shell指令null指定为参数,并指定在哪个文件夹中执行:使用接受
字符串[]
的重载,否则您将无法处理带有空格的文件名。谢谢,您能指定具体位置吗?字符串[]命令?@nck:See;也请考虑<代码> PrimeBuffer-<代码>,如图所示。@ TrasHood,我试图以它在你的链接中的方式来做它,但是看起来我现在遇到了更多的麻烦://@ NCK:可悲的是,没有一个完整的例子,有太多的方式让它出错。