Aufruf der GCC.exe aus Java mittels geRuntime().exec()



  • Hallo,

    ich versuche mit Java herauszufinden, welche fehlercodes/meldungen der GNU GCC.exe compiler von sich gibt während der Laufzeit.

    Anscheinend soll/kann das mit pipes geregelt werden. Ich habe aber keine Ahnung was pipes sind und google gibt nichts her... siehe mein Thread hier:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-193991.html

    Der witz ist, dass die while schlife nie betreten wird...

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class MainWindow 
    {
    
    	public MainWindow()
    	{
    
    	}
    
    	public static void main(String[] args)
    	{		
    		try
    		{			
    			String test="d";
    
    			Process p = Runtime.getRuntime().exec("C:/Programme/GCC/bin/gcc.exe -o main.exe main.c");
    	     	BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
    
    	     	while((test = br.readLine()) != null)
    	        {          	                   
    	     		  System.out.println(test);
    	     		  System.out.println("hallo");
    	        }
    
    		}
         	catch(Exception a)
            {
                a.printStackTrace();
            }
    	}
    }
    


  • möglicherweise, weil der compiler seine ausgaben in den standard error stream (std::cerr) pumpt. den holst du dir mit p.getErrorStream(). wenn du die ausgabe eines programms überwachen willst, solltest du immer beide streams überwachen.





  • thordk schrieb:

    möglicherweise, weil der compiler seine ausgaben in den standard error stream (std::cerr) pumpt. den holst du dir mit p.getErrorStream(). wenn du die ausgabe eines programms überwachen willst, solltest du immer beide streams überwachen.

    danke dir das hat schon was gebracht!


Anmelden zum Antworten