title: Not able to execute an exe file from java using ProcessBuilder
body: <p>I am making a project to run C, C++ and Java, from within Java code itself. It works absolutely fine for Java, and the problem is faced when compiling and executing C and C++ files.</p>
  
  <p>I got my compilation right with this <a href="https://stackoverflow.com/a/11269906/1461963">code</a> and I can get the executable file generated in my specified path. But now when I run the executable binary from <code>ProcessBuilder</code> I get an error saying that 'file was not found'. Please see to the code and tell me what is going wrong and where??</p>
  
  <pre><code>public void processCode(String path,String lang)throws IOException
      {
          String cmd="",s=null,out=null,file="";
          totalTime=0;
          ProcessBuilder process=new ProcessBuilder();
          process.directory(new File(path));
          if(lang.equals("c")||lang.equals("cpp"))
          {
              cmd=threadNum+".exe";
              process.command(cmd);
          }
          else if(lang.equals("java"))
          {
              cmd="java";
              file="Main"+threadNum;
              process.command(new String[]{cmd,file});
          }
          process.redirectInput(new File(PATH+"Input\\" + prob + ".txt"));
          process.redirectOutput(new File(PATH+"Output.txt"));
          Process p=process.start();
          long start=System.currentTimeMillis();
          while (true)
          {
              try{
                      if(p.exitValue()==0)
                      {
                          totalTime=(int)(System.currentTimeMillis()-start);
                          break;
                      }
                  }
                  catch (Exception e)
                  {
  
                  }
                  if(System.currentTimeMillis()-start&gt;2000)
                  {
                      res=1;
                      p.destroy();
                      break;
                  }
          }
          if(res!=1)
          {
              compareFile();
          }
      }
  </code></pre>
  
  <p>The method is called from <a href="https://stackoverflow.com/a/11269906/1461963">here</a>
  And the error generated is :</p>
  
  <pre><code>Exception in thread "main" java.io.IOException: Cannot run program "19.exe" (in directory "C:\wamp\www\usercodes\lokesh"): CreateProcess error=2, The system cannot find the file specified
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
      at Contest.processCode(Main.java:202)
      at Contest.compileCode(Main.java:180)
      at Contest.makeFile(Main.java:157)
      at Contest.main(Main.java:53)
      at Main.main(Main.java:15)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
  Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
      at java.lang.ProcessImpl.create(Native Method)
      at java.lang.ProcessImpl.&lt;init&gt;(ProcessImpl.java:188)
      at java.lang.ProcessImpl.start(ProcessImpl.java:132)
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
      ... 10 more
  </code></pre>