【发布时间】:2011-01-12 08:22:42
【问题描述】:
亲爱的 我想用 Java 执行一个 EXE 文件,但我无法正确执行。 原来在DOS命令提示符下,我的命令是这样的:
C:>\crf_test.exe model <inputfile.txt> outputfile.txt
注意:输入文件名必须放在括号中。在 DOS 窗口中运行它总是给我很好的结果。
当我希望我的 java 程序调用上述命令时,我会这样做:
Process p = Runtime.getRuntime().exec("crf_test.exe model <inputfile.txt> outputfile.txt");
但是,此命令的输出是“没有这样的文件或目录:” 我来宾 Java 不喜欢 DOS 命令中的方括号 。我也删除了 ,但 exe 文件不接受。 那么现在我该如何处理这个问题呢?请给我一个解决方案 非常感谢
【问题讨论】:
-
你试过
exec(new String[]{"crf_test.exe","model","<inputfile.txt>","outputfile.txt"})吗? -
或者尝试使用“.\\crf_test.exe ...”而不是“cft_test.exe ...”。我之前在 Linux 上遇到过类似的问题,现在解决了。
-
参见 [Java exec() 不返回管道连接命令的预期结果](stackoverflow.com/questions/2088917/…)。这个问题涉及管道,但实际上是一回事。管道和重定向 () 都是 shell 的函数,而不是由
exec处理。这个article 也很有帮助,尤其是“Runtime.exec() 不是命令行”部分。 -
+1 好点。这将是她/他面临的下一个问题)