Shell Script mit Parametern

derH0ns

Neues Mitglied
Hallo,
ich möchte durch mein Programm ein ShellScript ausführen, das Problem ist wenn ich mehr als 1 Parameter übergebe dann klappt es nicht mehr und ich bekomme vom "p.waitfor" den Error-Code 2 ich habe es mit folgendem Code versucht.

Java:
		        	String exec = "/bin/bash -c /home/derH0ns/script.sh abdc";
		        	ProcessBuilder pb = new ProcessBuilder();
		        	try {
		        		long starttime = System.currentTimeMillis();
		        		String parts[] = exec.split(" ");
		        		pb.command(new String[] {parts[0],exec.substring(parts[0].length()+1, exec.length())});
		        		//pb.command(parts); <--- Keine Exeption aber klappt nicht
		        		//pb.command(exec); <--- Fehler
		        		//pb.command(new String[] {"/bin/sleep","10"}); <--- Geht
		        		try {
		        			Process p = pb.start();	
		        			
		        			int res = p.waitFor();
		        			System.out.println(pb.command()+" - "+ res);


						} catch (InterruptedException e) {
							e.printStackTrace();
						}
						
					} catch (IOException e) {
						e.printStackTrace();
					}

Ich hoffe es kann mir Jemand helfen.
 
Hallo,

der Aufruf
[JAVA=7]pb.command(parts);[/code]
scheint mir der korrekte zu sein. Der ErrorCode= 2 rührt vom ShellScript her, dieses nochmals auf Fehler prüfen.
Welcher User führt denn das Java-Programm aus ?
Stimmen die Unix-Pfade?
Stimmen die Berechtigungen?

Funktioniert die Commandline direkt in einer Shell?
 
Das Script ist aber ausführbar und auch per Terminal problemlos ausführbar und wenn ich das Script durch:
Code:
/bin/bash -c mkdir /home/derH0ns/xyz
ersetzte kommt auch der Error-Code 2 dabei raus aber
Code:
/bin/mkdir /home/derH0ns/xyz
funktioniert.Aber der aufruft von Programmen oder Scripten, die mehr als 1 Parameter erwarten schlägt immer mit Error-Code 2 fehl.
 

Neue Themen


Zurück
Oben