Eseguire comandi o script shell da Java

This page was exported from - JPinup
Export date: Thu Jun 1 10:12:51 2017 / +0000 GMT
Eseguire comandi o script shell da Java
Molte volte è utile eseguire dei comandi shell direttamente dal codice java.
La JDK ci offre il metodo exec della classe Runtime, nel package java.lang, che ci permette l'interfacciamento con l'ambiente del
sistema dove l'applicazione è in esecuzione. Il metodo può eseguire uno script oppure una serie di comandi.
Vediamo una classe Java che esegue gli stessi comandi del seguente screenshot:
ShellScript.java
Ho implementato una classe con un metodo statico, che accetta in input la serie di comandi da eseguire. Vediamo l'esempio per
windows.
package it.hpe.spring.roo.listener;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.concurrent.Semaphore;
public class ShellScript {
public static String executeCommand(String... command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
// p.waitFor();
InputStreamReader in = new InputStreamReader(p.getInputStream());
Output as PDF file has been powered by [ Universal Post Manager ] plugin from www.ProfProjects.com
| Page 1/2 |
This page was exported from - JPinup
Export date: Thu Jun 1 10:12:52 2017 / +0000 GMT
BufferedReader reader = new BufferedReader(in);
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line + "n");
}
p.destroy();
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
public static void main(String[] args) {
String[] command = new String[3];
command[0] = "cmd";
command[1] = "/c";
command[2] = "cd \tmp\ && mvn --version";
String result = ShellScript.executeCommand(command);
System.out.println(result);
}
}
L'output è
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.7.0_79
Java home: C:Program FilesJavajdk1.7.0_79jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "amd64" Family: "windows"
Output as PDF file has been powered by [ Universal Post Manager ] plugin from www.ProfProjects.com
| Page 2/2 |