Runtime.exec() falscher return value

Stiffler66

Grünschnabel
Hallo zusammen,

habe folgendes Problem ich führe mehrere shell scripte hintereinander aus java heraus aus.
Ich brauche aus jedem einzelnen shellscript den return value.

mein Problem ist das ich entweder ein Return value von 127 oder von null bekomme.
Hoffe einer von den experten kann mir weiter helfen :(.

Code:
public synchronized int executeFile(File f)
	{
		//....................................
		ProcessBuilder	       p=null;
		Process pro = null;
		
		try
                {
               if(f.getName().endsWith(".sh"))
		{

                //p = new ProcessBuilder("sh","-c",f.getAbsolutePath());
		//oder
			Runtime rtime=Runtime.getRuntime(f.getAbsolutePath());

            		pro = rtime.exec("/bin/bash");
                        pro.start();
		        int retVal=pro.waitFor();
                        System.out.println("return Val = "+ retVal);
		}
                catch(Exception e){e.printStackTrace();}
		finally
               {
                     //.......
               } 
              //......................................
	}
 
Zuletzt bearbeitet:
Ich hatte schon einmal den Fall, dass er ewig gebraucht hatte, weil der Inputstream und Outputstream des Prozesses nicht geschlossen war.

Aber der ProcessBuilder ist der heutige richtige Weg.
 
Zurück