2016-06-13 1 views
0

Ich versuche eine Shell-Datei auszuführen, indem ich die Argumente-Variablen aus Java übergebe.Führe eine Shell-Datei aus Java aus und übergebe int und string Argumente

Ich möchte die Shell-Datei script.sh aus dem Java-Code die obigen Variablen wie Start, Ende, Land mit ihm übergeben.

int start = 10; 
int end = 100; 
String country = India; 
String scriptlocation = scriptloc+"/script.sh"; 
ProcessBuilder processBuilder = new ProcessBuilder(scriptlocation); 
processBuilder.environment().put("start", start); 
processBuilder.environment().put("end", end); 
processBuilder.environment().put("country", country); 

wo in der Start- und Ziel ganze Zahlen sind und das Land ist ein String Variable .. also das oben beschriebene Verfahren funktioniert nicht für int Variablen.

ich auch versucht, die unten Art und Weise

ProcessBuilder pb2=new ProcessBuilder("/bin/sh", 
             "-c", 
             "start=start end=end country=country scriptlocation"); 

mir diese Methode es die Werte der Variablen wie 10, 100 und Indien für den Anfang, am Ende nicht sicher funktionieren wird oder nicht .because nehmen hat und Ländervariablen .. Bitte vorschlagen.

Antwort

1

put wird verwendet, um Umgebungsvariablen nicht Befehlszeilenargument zu setzen (siehe Shell-Handbücher, um zu verstehen, welche Umgebungsvariablen sind).

Sie müssen für jedes Argument eine Zeichenfolge übergeben. Wenn "/bin/sh", "-c", "start=start end=end country=country scriptlocation" übergeben wird, erhält die Shell 3 Argumente. Außerdem müssen Sie auch Ihre int s in Strings konvertieren. Ich weiß nicht genau, wie Ihr Skript Argumente erhält, aber so etwas sollte funktionieren:

Verwandte Themen