2013-10-29 132 views
-2

請幫助我找出用於在目標c中運行終端命令的函數,就像我在以下代碼中使用的java一樣。我只想知道在obj c或cocoa中使用哪個函數來執行終端進程。將Java轉換爲對象C

Runtime rt = Runtime.getRuntime(); 
     Process prcComile = rt.exec("javac -d F:/ F://" + fname.getText()+ ".java"); 
     InputStream iscmp = prcComile.getErrorStream(); 
     int cerrInt = iscmp.read(); 
     if (cerrInt == -1) { 
      Process prc = rt.exec("java -cp F:/ " +fname.getText()); 
      InputStream iserr = prc.getErrorStream(); 
      int errInt = iserr.read(); 
      if (errInt == -1) { 
       InputStream is = prc.getInputStream(); 
       int readInt = is.read(); 

       String allOutput = ""; 
       while (readInt != -1) { 
        char ch = (char) readInt; 
        allOutput = allOutput + ch; 
        readInt = is.read(); 
       } 

       txtOutput.setText(allOutput); 
      } else { 
       String errorString = ""; 
       while (errInt != -1) { 
        char ch = (char) errInt; 
        errorString += ch; 
        errInt = iserr.read(); 
       } 
       txtOutput.setText(errorString); 
      } 
     } else { 
      String errorString = ""; 
      while (cerrInt != -1) { 
       char ch = (char) cerrInt; 
       errorString += ch; 
       cerrInt = iscmp.read(); 
      } 
      txtOutput.setText(errorString); 
     } 
+0

主* *類是'NSTask' – CRD

+0

刪除'【JAVA]'的答案不會有什麼與Java有關。 –

回答

0

您可以使用NSTask。示例(未經測試)應打印Java版本到標準輸出(這是被讀):

- (IBAction)speak:(id)sender 
{ 
    NSTask *task = [[NSTask alloc] init]; 
    task.launchPath = @"java"; 
    task.arguments = @[@"-v"]; 
    [task launch]; 
    [task waitUntilExit]; 
    //use task.standardOutput to read 
}