2013-02-21 2 views
2

У меня есть C код, который принимает входные данные из консоли, как,как передать параметры процесса во время выполнения

main() { 

int value; 
printf("Enter a value"); 
scanf("%d", &value); 
printf("the value is, %d", value); 
return; 
} 

теперь я скомпилировать и создать файл с расширением .exe. (скажем, test.exe)

После этого я хочу назвать этот исполняемый файл из java-кода.

так, я использовал

public class JavaTest { 
static String s=null; 
public static void main(String[] args) throws java.io.IOException, java.lang.InterruptedException { 

    java.lang.Runtime rt = java.lang.Runtime.getRuntime(); 


    System.out.println("start"); 
    java.lang.Process p = rt.exec("test.exe"); 

    BufferedReader stdInput = new BufferedReader(new 
      InputStreamReader(p.getInputStream())); 


    while ((s = stdInput.readLine()) != null) { 
     System.out.println(s); 
    } 

    p.waitFor(); 

    System.out.println("done."); 
} 
} 

Очевидно, что не работает. Мой вопрос: как передать целое число в процесс во время выполнения? Я не хочу передавать его в качестве параметра командной строки.

+0

Какая версия Java? – fglez

+0

Это последний, jdk 7 – se7en

+0

См. Принятый ответ http://stackoverflow.com/questions/3643939/java-process-with-input-output-stream – fglez

ответ

0

используйте выходной поток, прежде чем использовать входной поток процесса. Напишите целое число на вывод.Stream

+0

я пишу это? int a = 1; BufferedWriter stdOut = new BufferedWriter (новый OutputStreamWriter (p.getOutputStream())); stdOut.write (a); – se7en

Смежные вопросы