Runtime.getRuntime().exec() hangs when Linux more command is used
这是一个非常具体的问题,我在任何地方都找不到任何线索。因此,我使用运行时.GeTrimeMe()(Excel)来从Java程序中调用许多不同的Linux命令。当我应用一些细微的更改(是否使用bash和字符串数组)时,下面的代码几乎适用于任何类型的Linux命令。
1 2 3 4 |
但是,当我使用以下命令时,我的程序挂起并且没有完成处理:
1 | command ="more file0.txt"; |
我还尝试了不同的变体,例如下面的一个给出了错误:
1 2 3 4 |
或
1 2 3 | command ="more keywords/file0.txt"; p1 = Runtime.getRuntime().exec(command); exitVal = p1.waitFor(); |
错误是:
1 | There was a problem:java.io.IOException: Cannot run program"more keywords/file0.txt": error=2, No such file or directory |
的确,file0.txt存在。
所以,我想知道linux命令more是否在runtime.getruntime().exec()中工作?我真的需要这个命令工作,因为它为其他命令生成结果。事先谢谢。
您的程序挂起是因为在shell中执行的
是的,您不应该像其他许多人指出的那样使用
试着把你的文件的完整位置和错误应该消失。
例如,如果文件位于根临时文件夹中,请执行
如果你不知道文件的位置,