2013-02-21 39 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 2013-03-04 11:32:03

+0

這是最新的,jdk 7 – se7en 2013-03-06 11:41:15

+0

看到接受的答案http://stackoverflow.com/questions/3643939/java-process-with-input-output-stream – fglez 2013-03-06 11:54:11

回答

0

在使用Process的inputStream之前使用outputStream。將整數寫入輸出.Stream

+0

我寫這個? int a = 1; BufferedWriter stdOut = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); stdOut.write(a); – se7en 2013-02-21 12:23:53