Executing external program in java and passing commands

孤街浪徒 提交于 2019-12-19 11:15:33

问题


I have this chess engine Rybka.exe, that i have to execute in java Here is an example how you run Rybka: Once you clicked on it, console opens and waits for input. So then you enter "uci" and you press enter and you wait for it to load (approx. 1 sec) and then you have to enter a few more lines as options and stuff. The problem is that I don't know how to pass those commands from java to Rybka. The fact is that those commands need to be entered one at a time, because you have to wait for some to execute. This is how I tried to open it. Code:

Process p1 = Runtime.getRuntime().exec("Rybka.exe");

This works, because you can see that Rybka.exe is active in task manager, but I don't know how to pass commands to it.


回答1:


a) how to bind a windows console application with java application?

link provided by the courtesy of Google search query:

https://www.google.pl/search?q=java+binding+console+to+an+app&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

b) in short:

 InputStream is = p1.getInputStream();
 OutputStream os = p1.getOutputStream();

(supplied by the obvious http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html)




回答2:


Have you tried passing parameters/commands as below?

Runtime.getRuntime().exec("Rybka.exe parameter1,parameter2");



来源:https://stackoverflow.com/questions/9958629/executing-external-program-in-java-and-passing-commands

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!