Führen Sie processbuilder und in ein-und Ausgang

Ich versuche, mein Programm zu starten Zauberer SSH in meinen server, aber kann nicht scheinen, um herauszufinden, wie man in und Ausgang zu gehen, um stdin und stdout oder irgendwo für diese Angelegenheit. Bekomme ich nur eine leere output-Fenster von Netbeans. Wie bekomme ich die Jar ausführen, und Eingabe/Ausgabe?

public class openShell {

public void openShell() throws IOException {
        String line; 
        Scanner scan = new Scanner(System.in);  
        ProcessBuilder builder = new ProcessBuilder ("C:\\Program Files\\Java\\lib\\enchanter-beanshell-0.6.jar", "myscript.bsh"); 
        builder.redirectErrorStream(true); 
        Process process = builder.start();  
        OutputStream stdin = process.getOutputStream (); 
        InputStream stderr = process.getErrorStream (); 
        InputStream stdout = process.getInputStream ();  
        BufferedReader reader = new BufferedReader (new InputStreamReader(stdout)); 
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));  


        while (scan.hasNext()) { 
        String input = scan.nextLine(); 
        if (input.trim().equals("exit")) { 
            //Putting 'exit' amongst the echo --EOF--s below doesn't work. 
            writer.write("exit\n"); 
        } else { 
            writer.write("((" + input + ") && echo --EOF--) || echo --EOF--\n"); 
        } 
        writer.flush(); 

        line = reader.readLine(); 
        while (line != null && ! line.trim().equals("--EOF--")) { 
            System.out.println ("Stdout: " + line); 
            line = reader.readLine(); 
        } 
        if (line == null) { 
            break; 
        } 
    } 
}
}


private void LaunchButtonActionPerformed(ActionEvent evt) {
   //openShell open = new openShell();     //RUNS BUT NO IN OR OUTPUT

   //BELOW CODE IS FOR TESTING, JUST TRYING TO GET PROCESSBUILDER TO CONNECT 
   //TO MY JAR
   try {
      ProcessBuilder builder = new ProcessBuilder(
         "Java -jar C:\\Program Files\\Java\\lib\\enchanter-beanshell-0.6.jar"); 
      builder.redirectErrorStream(true); 
      Process process = builder.start();
   } catch (IOException ex) {
       Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
   }
}                                            
  • Benutzt du Java 6 oder 7? Die ProcessBuilder-API ist auch viel besser in Java 7.
  • Ich bin mit 7. Edit hinzufügen openShell Klasse.
Schreibe einen Kommentar