2012-03-31 6 views
1

J'ai ce moteur d'échec Rybka.exe, que je dois exécuter dans java Voici un exemple d'exécution de Rybka: Une fois que vous avez cliqué dessus, la console s'ouvre et attend la saisie . Alors, vous entrez "uci" et vous appuyez sur Entrée et vous attendez qu'il charge (environ 1 seconde), puis vous devez entrer quelques lignes de plus comme options et d'autres choses. Le problème est que je ne sais pas comment passer ces commandes de java à Rybka. Le fait est que ces commandes doivent être entrées une à la fois, car il faut attendre que certaines soient exécutées. Voici comment j'ai essayé de l'ouvrir. code:Exécuter un programme externe dans java et passer des commandes

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

Cela fonctionne, parce que vous pouvez voir que Rybka.exe est actif dans le gestionnaire de tâches, mais je ne sais pas comment passer des commandes.

Répondre

0

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

lien fourni par l'aimable autorisation de recherche Google requête:

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) en bref:

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

(fourni par le http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html évident)

+0

Note: rybka (comme tous les moteurs UCI/WinBoard) distingue les ** paramètres ** (utilisés pour définir l'état du moteur à l'exécution) des ** commandes ** (transmises au moteur en marche); voir http://en.wikipedia.org/wiki/Universal_Chess_Interface et http://wbec-ridderkerk.nl/html/UCIProtocol.html (résultat de ~ 5 secondes de googling) – vaxquis

+0

Je n'arrive pas à croire que j'étais si aveugle. Merci de m'avoir fait le voir à nouveau et d'avoir compris. J'ai utilisé l'entrée pour imprimer la sortie de la console, mais je n'ai jamais pensé à le faire en sens inverse. – user1189571

0

Avez-vous essayé de transmettre des paramètres/commandes comme indiqué ci-dessous?

Runtime.getRuntime(). Exec ("Paramètre Rybka.exe1, paramètre2");

+0

Je l'ai fait, mais d'abord il s'exécute rapidement, problablement parce qu'il exécute juste Rybka.exe et deuxièmement il ne donne aucune sortie. Je sais que j'ai créé ouput ok, parce que si j'exécute quelque chose qui n'a pas besoin de paramètres fonctionne bien. – user1189571

Questions connexes