2016-10-22 98 views
1

我试图运行java应用程序中的简单提示命令。无法在Java程序中执行提示命令

无论我尝试什么,我alwasy收到CreateProcess error=2

这是我的代码:

File f = new File("C:/Users/my/path/to/the/executable/"); 
String[] commands = { "text.txt", "--command1" /* others commands */ }; 
// omitting try/catch 
Process p = Runtime.getRuntime().exec("myprogram.exe", commands, f); 
p.waitFor(); 
// other code 

的exe采用作为第一个参数为.txt文件,然后它需要正常的命令作为--command1。

我怎样才能得到这个工作?提前致谢!

+0

你有什么错误? – talex

+0

@talex,更具体地说是: Java.io.IOException:无法运行程序“myprogram.exe”(在目录“/ thedirectory”中):error = 2,没有这样的文件或目录 – Matteo

回答

1

目录参数不是可执行文件的路径,它是工作目录,所以如果您在命令行上,它将是您在启动命令时所处的当前目录。

您需要在第一个参数指定的完整路径,或将其添加到PATH环境变量

+0

谢谢!错误消失了,但有一个新问题。如果我在cmd中手动运行它,则同样的命令产生输出,但如果从java启动则不返回任何内容。会是什么呢? – Matteo

+1

你需要一个BufferReader对象来读取cmd的输出....类似于:BufferedReader bf = new BufferedReader(new InputStreamReader(p.getInputStream()));既然你没有显示你的“其他代码”,你无法知道你是否有这个。 – DevilsHnd