title: Running a c/c++ program from java through command line
body: <p>I have written a java program that compiles and executes C,c++,java programs ..I firstly tested it for java and it worked absolutely fine. Then I tested it for C but it gave errors.Please tell what I need to do..Here is the module which compiles the code..:</p>
  
  <pre><code>public void compileCode(String path,String lang)throws IOException
      {
          String cmd="";
          if(lang.equals("c")||lang.equals("cpp"))
              cmd="g++ Main"+threadNum+"."+lang+" -o "+threadNum;
          else if(lang.equals("java"))
              cmd="javac Main"+threadNum+".java";
  
          Process p=Runtime.getRuntime().exec(cmd,null,new File(path));
  
           String s=null;
          BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
          while ((s = stdError.readLine()) != null) {
              msg+=s+"\n";
              res=0;
          }
          if(res!=0)
              processCode(path,lang);
      }
  </code></pre>
  
  <p>And the error is :</p>
  
  <pre><code>Exception in thread "main" java.io.IOException: Cannot run program "g++" (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 java.lang.Runtime.exec(Runtime.java:615)
      at java.lang.Runtime.exec(Runtime.java:448)
      at Contest.compileCode(Main.java:164)
      at Contest.makeFile(Main.java:154)
      at Contest.main(Main.java:52)
      at Main.main(Main.java:14)
      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:1
  
  20)
  </code></pre>