这是我在做什么:如何执行从使用java的文件输入输入的c可执行文件?
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("./Hello" + " < in.txt");
它从文件和打印它stdout
输入。但是这并没有得到执行。我如何使它发生?
这是我在做什么:如何执行从使用java的文件输入输入的c可执行文件?
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("./Hello" + " < in.txt");
它从文件和打印它stdout
输入。但是这并没有得到执行。我如何使它发生?
尝试通过每个参数单独,而不是在一个字符串结合整个命令:
String[] cmd = {"./Hello","<","in.txt"};
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
希望这有助于;
我认为这是,你想从执行的命令得到输出。当调用Runtime.exec("<some command>")
时,Java会设置独立的IO-Stream来读写执行的命令。
如果你要打印的命令,命令行的结果,那么你可以做这样的事情:
public class Test {
public static void main(String[] args) throws IOException
{
int read;
byte[] buffer = new byte[1024];
Process p = Runtime.getRuntime().exec("echo HELLO-THERE");
InputStream is = p.getInputStream();
while (is.available() > 0) {
read = is.read(buffer);
System.out.println(new String(buffer, 0, read, "UTF-8"));
}
}
}
这将产生这样的:
HELLO-THERE
一般来说,在情况像这样,你最好阅读java文档:https://docs.oracle.com/javase/7/docs/api/