title: how to interact with system cmd line using java code
body: <p>I'm trying to create a Java code that creates a nifi customized processor ! so in order to do that I need to use windows <strong>cmd windows</strong> and launch <code>mvn archetype:generate</code> then choose the modele nifi by typing <code>nifi</code> then choose the project by typing<code>1</code> the I need to write the groupeId, the artifact ... </p>
  
  <p><a href="https://i.stack.imgur.com/Snjrr.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Snjrr.png" alt="enter image description here"></a>
  <a href="https://i.stack.imgur.com/lThHD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/lThHD.png" alt="enter image description here"></a>
  <a href="https://i.stack.imgur.com/rYq8B.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rYq8B.png" alt="enter image description here"></a> </p>
  
  <p>I need to do all that automatically by using a java code : I tryed this code :</p>
  
  <pre><code>import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.OutputStream;
  
  public class CmdTest {
      public static void main(String[]args) throws IOException {
          String line;
          OutputStream stdin = null;
          InputStream stderr = null;
          InputStream stdout = null;
  
            // launch EXE and grab stdin/stdout and stderr
          ProcessBuilder builder = new ProcessBuilder(
                  "cmd.exe", "/c", "cd \"C:\\users\\eya\\desktop\\javaprocessor\" &amp;&amp; mvn archetype:generate");
              builder.redirectErrorStream(true);
              Process process = builder.start();
            stdin = process.getOutputStream ();
            stderr = process.getErrorStream ();
            stdout = process.getInputStream ();
  
            // "write" the parms into stdin
            line = "nifi" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "1" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "33" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "javaproceSSor" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "javaprocessor" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "javapro" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            line = "y" + "\n";
            stdin.write(line.getBytes() );
            stdin.flush();
  
            stdin.close();
  
            // clean up if any output in stdout
            BufferedReader brCleanUp =
              new BufferedReader (new InputStreamReader (stdout));
            while ((line = brCleanUp.readLine ()) != null) {
  
                System.out.println ("[Stdout] " + line);
            }
            brCleanUp.close();
  
            // clean up if any output in stderr
            brCleanUp =
              new BufferedReader (new InputStreamReader (stderr));
            while ((line = brCleanUp.readLine ()) != null) {
              System.out.println ("[Stderr] " + line);
            }
            brCleanUp.close();
      }
  }
  </code></pre>
  
  <p>but it only read "nifi" the others no ! and here is the result : </p>
  
  <pre><code>    [Stdout] 2679: remote -&gt; us.fatehi:schemacrawler-archetype-plugin-command (-)
  [Stdout] 2680: remote -&gt; us.fatehi:schemacrawler-archetype-plugin-dbconnector (-)
  [Stdout] 2681: remote -&gt; us.fatehi:schemacrawler-archetype-plugin-lint (-)
  [Stdout] 2682: remote -&gt; ws.osiris:osiris-archetype (Maven Archetype for Osiris)
  [Stdout] 2683: remote -&gt; xyz.luan.generator:xyz-gae-generator (-)
  [Stdout] 2684: remote -&gt; xyz.luan.generator:xyz-generator (-)
  [Stdout] 2685: remote -&gt; za.co.absa.hyperdrive:component-archetype (-)
  [Stdout] Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1589: Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 
  [Stdout] 1: 1.0-alpha-1
  [Stdout] 2: 1.0-alpha-2
  [Stdout] 3: 1.0-alpha-3
  [Stdout] 4: 1.0-alpha-4
  [Stdout] 5: 1.0
  [Stdout] 6: 1.1
  [Stdout] 7: 1.3
  [Stdout] 8: 1.4
  [Stdout] Choose a number: 8: Define value for property 'groupId': [INFO] ------------------------------------------------------------------------
  [Stdout] [INFO] BUILD FAILURE
  [Stdout] [INFO] ------------------------------------------------------------------------
  [Stdout] [INFO] Total time:  12.592 s
  [Stdout] [INFO] Finished at: 2020-04-12T21:13:20+01:00
  [Stdout] [INFO] ------------------------------------------------------------------------
  [Stdout] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate (default-cli) on project standalone-pom: null: MojoFailureException: NullPointerException -&gt; [Help 1]
  [Stdout] [ERROR] 
  [Stdout] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  [Stdout] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  [Stdout] [ERROR] 
  [Stdout] [ERROR] For more information about the errors and possible solutions, please read the following articles:
  [Stdout] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
  </code></pre>
  
  <p>if there is any way to generate mvn projects automatically then you are very welcome to help</p>
  
  <blockquote>
    <p>EDIT: 
    I tried this <a href="https://stackoverflow.com/questions/16541124/generate-maven-archetype-from-java-code">solution</a> but I didn't know how to configure it </p>
  </blockquote>