List of usage examples for java.lang ProcessBuilder environment
Map environment
To view the source code for java.lang ProcessBuilder environment.
Click Source Link
From source file:MainClass.java
public static void main(String args[]) throws Exception { ProcessBuilder launcher = new ProcessBuilder(); Map<String, String> environment = launcher.environment(); launcher.redirectErrorStream(true);/*from www . ja v a 2s . c om*/ launcher.directory(new File("c:\\")); environment.put("name", "var"); launcher.command("notepad.exe"); Process p = launcher.start(); // And launch a new process BufferedReader output = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = output.readLine()) != null) System.out.println(line); // The process should be done now, but wait to be sure. p.waitFor(); }
From source file:ProcessBuilderDemo.java
public static void main(String argv[]) throws InterruptedException, IOException { List<String> command = new ArrayList<String>(); command.add("notepad"); command.add("foo.txt"); ProcessBuilder builder = new ProcessBuilder(command); Map<String, String> environ = builder.environment(); environ.put("PATH", "/windows;/windows/system32;/winnt"); builder.directory(new File(System.getProperty("user.home"))); final Process godot = builder.start(); godot.waitFor();/* w w w. j a v a2 s . c om*/ System.out.println("Program terminated!"); return; }
From source file:PassEnv.java
public static void main(String[] args) throws java.io.IOException { System.out.println(System.getProperty("java.class.path")); ProcessBuilder pb = new ProcessBuilder("java", "Env", "DRAGONBALLS"); Map<String, String> env = pb.environment(); env.put("DRAGONBALLS", "7"); pb.start();/*from w w w .ja v a2 s . c o m*/ }
From source file:Main.java
public static void main(String[] args) { // create a new list of arguments for our process String[] list = { "notepad.exe", "test.txt" }; // create the process builder ProcessBuilder pb = new ProcessBuilder(list); // get the environment of the process Map<String, String> env = pb.environment(); // get the system drive of the environment System.out.println(env);/* w w w . j a va 2 s . c om*/ System.out.println(env.get("SystemDrive")); }
From source file:com.peewah.distribuidosfinal.EntryPoint.java
public static void main(String[] args) { //1. Conexin con la base de datos String dbUrl = "jdbc:postgresql://localhost:5432/distribuidosfinal"; try {//from ww w . j a v a 2 s.com connectionSource = new JdbcConnectionSource(dbUrl); ((JdbcConnectionSource) connectionSource).setUsername("csacanam"); ((JdbcConnectionSource) connectionSource).setPassword("12345678"); } catch (SQLException ex) { System.out.println("Error en la conexin a la base de datos"); } // 2. Data Acces Object (DAO) pattern usuarioDao = null; sistemaOperativoDao = null; maquinaVirtualDao = null; maquinaAppDao = null; appDao = null; cookbookDao = null; cookbookAppDao = null; nodoDao = null; if (connectionSource != null) { try { usuarioDao = DaoManager.createDao(connectionSource, Usuario.class); sistemaOperativoDao = DaoManager.createDao(connectionSource, SistemaOperativo.class); maquinaVirtualDao = DaoManager.createDao(connectionSource, MaquinaVirtual.class); maquinaAppDao = DaoManager.createDao(connectionSource, MaquinaApp.class); appDao = DaoManager.createDao(connectionSource, App.class); cookbookDao = DaoManager.createDao(connectionSource, Cookbook.class); cookbookAppDao = DaoManager.createDao(connectionSource, CookbookApp.class); nodoDao = DaoManager.createDao(connectionSource, Nodo.class); } catch (SQLException ex) { System.out.println("Error en la creacin del DAO"); System.err.println(ex.getMessage()); } } // 3. Crear tabla Usuario si no existe try { TableUtils.createTableIfNotExists(connectionSource, Usuario.class); TableUtils.createTableIfNotExists(connectionSource, SistemaOperativo.class); TableUtils.createTableIfNotExists(connectionSource, MaquinaVirtual.class); TableUtils.createTableIfNotExists(connectionSource, App.class); TableUtils.createTableIfNotExists(connectionSource, MaquinaApp.class); TableUtils.createTableIfNotExists(connectionSource, Cookbook.class); TableUtils.createTableIfNotExists(connectionSource, CookbookApp.class); TableUtils.createTableIfNotExists(connectionSource, Nodo.class); } catch (SQLException ex) { System.out.println("Error creando las tablas"); } //4. Asignacin de puerto ProcessBuilder process = new ProcessBuilder(); Integer puerto; if (process.environment().get("PORT") != null) { puerto = Integer.parseInt(process.environment().get("PORT")); } else { puerto = 8080; } spark.SparkBase.port(puerto); //5. Habilitar Cross-origin resource sharing (CORS) options("/*", (Request rqst, Response rspns) -> { String accessControlRequestHeaders = rqst.headers("Access-Control-Request-Headers"); if (accessControlRequestHeaders != null) { rspns.header("Access-Control-Allow-Headers", accessControlRequestHeaders); } String accessControlRequestMethod = rqst.headers("Access-Control-Request-Method"); if (accessControlRequestMethod != null) { rspns.header("Access-Control-Allow-Methods", accessControlRequestMethod); } return "OK"; }); before((Request rqst, Response rspns) -> { rspns.header("Access-Control-Allow-Origin", "*"); }); after((Request rqst, Response rspns) -> { rspns.type("application/json"); }); //6. Web services //Crear usuario post("/new-user", (Request rqst, Response rspns) -> { //Obtener datos como parmetros String nombre = rqst.queryParams("name"); String username = rqst.queryParams("username"); String password = rqst.queryParams("password"); //Validar si no hay datos vacos if (nombre != null && !nombre.equals("") && username != null && !username.equals("") && password != null && !password.equals("")) { //Crear objeto usuario Usuario usuario = new Usuario(); usuario.setNombre(nombre); usuario.setPassword(password); usuario.setUsername(username); //Crear objeto en base de datos try { usuarioDao.create(usuario); //Crear carpeta File file = new File("/tmp/" + username); if (!file.exists()) { boolean success = file.mkdir(); if (!success) { System.out.println("La carpeta no pudo ser creada"); } } } catch (SQLException ex) { System.out.println("Error creando el usuario"); return false; } } else { System.out.println("No debes dejar campos vacos"); return false; } System.out.println("Usuario creado"); return true; }); //Autenticar usuario post("/auth-user", (Request rqst, Response rspns) -> { //Obtener datos como parmetros String username = rqst.queryParams("username"); String password = rqst.queryParams("password"); //Validar si no hay datos vacos if (username != null && !username.equals("") && password != null && !password.equals("")) { //Validar la dupla usuario-password try { Usuario usuario = usuarioDao.queryForId(username); if (usuario != null && usuario.getPassword().equals(password)) { return true; } } catch (SQLException ex) { } } return false; }); //Listar sistemas operativos disponibles get("/list-so", (Request rqst, Response rspns) -> { List<SistemaOperativo> sistemasOperativos = new ArrayList<>(); try { sistemasOperativos = sistemaOperativoDao.queryForAll(); } catch (SQLException ex) { System.out.println("Error listando los sistemas operativos"); } return sistemasOperativos; }, new JsonTransformer()); //Crear mquina virtual post("/create-machine", (Request rqst, Response rspns) -> { try { //Obtener parmetros String username = rqst.queryParams("username"); String nombreMaquina = rqst.queryParams("nombreMaquina"); String nombreSO = rqst.queryParams("nombreSO"); Usuario user = usuarioDao.queryForId(username); SistemaOperativo so = sistemaOperativoDao.queryForId(nombreSO); if (user != null && so != null) { //Crear mquina virtual MaquinaVirtual maquinaVirtual = new MaquinaVirtual(); maquinaVirtual.setNombre(nombreMaquina); maquinaVirtual.setSistemaOperativo(sistemaOperativoDao.queryForId(nombreSO)); maquinaVirtual.setUsername(usuarioDao.queryForId(username)); maquinaVirtualDao.create(maquinaVirtual); //Crear carpeta String path = "/tmp/" + username + "/" + nombreMaquina; File file = new File(path); if (!file.exists()) { boolean success = file.mkdir(); if (!success) { System.out.println("No se pudo crear la carpeta para la mquina"); } else { //Crear Vagrantfile try (Writer writer = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(path + "/Vagrantfile"), "UTF-8"))) { writer.write("VAGRANTFILE_API_VERSION = \"2\"\n"); writer.write("Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|\n"); writer.write("\n"); writer.write("end\n"); } } } return true; } else { return false; } } catch (SQLException ex) { System.out.println("Error creando la mquina virtual"); return false; } }); //Eliminar usuario y sus mquinas virtuales asociadas post("/delete-user", (Request rqst, Response rspns) -> { String userLogged = rqst.queryParams("usernameLogged"); String nombreUsuario = rqst.queryParams("usernameToDelete"); if (userLogged != null && !userLogged.equals("") && nombreUsuario != null && !userLogged.equals("") && userLogged.equals("admin")) { try { Usuario user = usuarioDao.queryForId(nombreUsuario); if (user != null) { //Eliminar mquinas virtuales del usuario Collection<MaquinaVirtual> maquinasUsuario = user.getMaquinasVirtuales(); for (MaquinaVirtual maquina : maquinasUsuario) { //Eliminar apps de las mquinas virtuales del usuario QueryBuilder<MaquinaApp, String> queryBuilder = maquinaAppDao.queryBuilder(); queryBuilder.where().eq(MaquinaApp.MACHINE_FIELD, maquina.getId()); PreparedQuery<MaquinaApp> preparedQuery = queryBuilder.prepare(); Collection<MaquinaApp> maquinasApps = maquinaAppDao.query(preparedQuery); maquinaAppDao.delete(maquinasApps); //Eliminar la mquina virtual maquinaVirtualDao.delete(maquina); } //Eliminar usuario usuarioDao.delete(user); //Eliminar carpeta del usuario FileUtils.deleteDirectory(new File("/tmp/" + nombreUsuario)); return true; } else { return false; } } catch (SQLException ex) { System.out.println("Error eliminando el usuario"); return false; } } else { System.out.println("No tiene permisos para realizar esta accin"); return false; } }); //Listar mquinas virtuales de un usuario get("/list-machines", (Request rqst, Response rspns) -> { String username = rqst.queryParams("username"); return listMachines(username); }, new JsonTransformer()); //Listar usuarios get("/list-users", (Request rqst, Response rspns) -> { String username = rqst.queryParams("usernameLogged"); if (username.equals("admin")) { List<Usuario> usuarios = new ArrayList<>(); try { usuarios = usuarioDao.queryForAll(); } catch (SQLException ex) { System.out.println("Error listando los usuarios"); } return usuarios; } else { System.out.println("No tiene permisos para realizar esta accin"); return "No tiene permisos para realizar esta accin"; } }, new JsonTransformer()); // Agregar nodo a una mquina virtual post("/add-node", (Request rqst, Response rspns) -> { String nombreNodo = rqst.queryParams("nombreNodo"); String ipPrivada = rqst.queryParams("ipPrivada"); String ipPublica = rqst.queryParams("ipPublica"); String mascaraRed = rqst.queryParams("mascaraRed"); String cantidadMemoria = rqst.queryParams("cantidadMemoria"); String cantidadCPU = rqst.queryParams("cantidadCPU"); String interfazPuente = rqst.queryParams("interfazPuente"); String parametrosJSON = rqst.queryParams("parametrosJSON"); String nombreMaquina = rqst.queryParams("nombreMaquina"); String userLogged = rqst.queryParams("userLogged"); Usuario user = usuarioDao.queryForId(userLogged); if (user != null) { //Buscar mquina QueryBuilder<MaquinaVirtual, Integer> queryBuilder = maquinaVirtualDao.queryBuilder(); queryBuilder.where().eq(MaquinaVirtual.USERNAME_FIELD, userLogged); queryBuilder.where().eq(MaquinaVirtual.NOMBRE_FIELD, nombreMaquina); PreparedQuery<MaquinaVirtual> preparedQuery = queryBuilder.prepare(); List<MaquinaVirtual> maquinasUser = maquinaVirtualDao.query(preparedQuery); //Existe la mquina if (maquinasUser.size() > 0 && maquinasUser.get(0).getNombre().equals(nombreMaquina)) { //Crear nodo Nodo nodo = new Nodo(); nodo.setNombre(nombreNodo); nodo.setCantidadCPU(cantidadCPU); nodo.setCantidadMemoria(cantidadMemoria); nodo.setInterfazPuente(interfazPuente); nodo.setIpPrivada(ipPrivada); nodo.setIpPublica(ipPublica); nodo.setMascaraRed(mascaraRed); nodo.setParametrosJSON(parametrosJSON); nodo.setMaquinaVirtual(maquinasUser.get(0)); nodoDao.create(nodo); //Crear nodo en Vagrantfile insertarNodoEnVagrantFile("/tmp/" + userLogged + "/" + nombreMaquina, nodo); return true; } } return false; }); //Listar apps para un SO get("/list-apps", (Request rqst, Response rspns) -> { String nameSO = rqst.queryParams("nombreSO"); SistemaOperativo buscado = sistemaOperativoDao.queryForId(nameSO); if (buscado != null) { QueryBuilder<App, String> queryBuilder = appDao.queryBuilder(); queryBuilder.where().eq(App.SO_FIELD, buscado.getNombre()); PreparedQuery<App> preparedQuery = queryBuilder.prepare(); Collection<App> aplicaciones = appDao.query(preparedQuery); return aplicaciones; } else { return "El SO buscado no existe"; } }, new JsonTransformer()); //Listar apps para una maquina virtual get("/list-app-installed", (Request rqst, Response rspns) -> { String userLogged = rqst.queryParams("userLogged"); String machineName = rqst.queryParams("nombreMaquina"); List<MaquinaApp> maquinaApp; List<App> apps = new ArrayList<>(); //Buscar si el usuario loggeado existe Usuario buscado; MaquinaVirtual buscada = null; try { buscado = usuarioDao.queryForId(userLogged); if (buscado != null) { //Lista de maquinas virtuales del usuario Collection<MaquinaVirtual> maquinasVirtuales = listMachines(userLogged); //Revisar si la maquina virtual buscada pertenece al usuario loggeado for (MaquinaVirtual maquina : maquinasVirtuales) { if (maquina.getNombre().equals(machineName)) { buscada = maquina; break; } } if (buscada != null) { //Obtener la lista de aplicaciones de la maquina virtual QueryBuilder<MaquinaApp, String> queryBuilderN = maquinaAppDao.queryBuilder(); queryBuilderN.where().eq(MaquinaApp.MACHINE_FIELD, buscada.getId()); PreparedQuery<MaquinaApp> preparedQueryN = queryBuilderN.prepare(); maquinaApp = maquinaAppDao.query(preparedQueryN); if (maquinaApp.size() > 0) { for (MaquinaApp m : maquinaApp) { apps.add(m.getApp()); } } } else { System.out.println("La maquina no existe para el usuario buscado"); } } else { System.out.println("El usuario loggeado no existe"); } } catch (SQLException ex) { System.out.println("Error listando las apps instaladas"); } return apps; }, new JsonTransformer()); //Listar nodos de una maquina virtual get("/list-node", (Request rqst, Response rspns) -> { String userLogged = rqst.queryParams("userLogged"); String nombreMaquina = rqst.queryParams("nombreMaquina"); //Inicializar la lista de nodos que se va a retornar Collection<Nodo> nodos = new ArrayList<>(); //Validar que no hayan campos vacios if (userLogged != null && !userLogged.equals("") && nombreMaquina != null && !nombreMaquina.equals("")) { //Buscar el usuario loggeado Usuario user = usuarioDao.queryForId(userLogged); //Verificar que el usuario existe if (user != null) { //Obtener las maquinas virtuales del usuario List<MaquinaVirtual> maquinasVirtuales = listMachines(userLogged); for (MaquinaVirtual m : maquinasVirtuales) { if (m.getNombre().equals(nombreMaquina)) { nodos = m.getNodos(); } } } else { System.out.println("El usuario loggeado no existe"); } } else { System.out.println("No pueden haber parametros vacios"); } return nodos; }, new JsonTransformer()); //Eliminar maquina virtual y aplicaciones asociadas post("/delete-vm", (Request rqst, Response rspns) -> { String usernameLogged = rqst.queryParams("usernameLogged"); String nombreMaquina = rqst.queryParams("nombreMaquina"); MaquinaVirtual buscada = null; List<MaquinaApp> maquinaApp; //Verificar que los parametros recibidos no son null if (usernameLogged != null && !usernameLogged.equals("") && nombreMaquina != null && !nombreMaquina.equals("")) { Usuario user = usuarioDao.queryForId(usernameLogged); if (user != null) { //Obtener las maquinas virtuales del usuario List<MaquinaVirtual> maquinasVirtuales = listMachines(usernameLogged); //Buscar la maquina virtual a eliminar dentro de las maquinas del usuario for (MaquinaVirtual m : maquinasVirtuales) { if (m.getNombre().equals(nombreMaquina)) { buscada = m; break; } } //Verificar que la maquina buscada pertenece al usuario en cuestion if (buscada != null) { //Obtener la lista de aplicaciones de la maquina virtual QueryBuilder<MaquinaApp, String> queryBuilder = maquinaAppDao.queryBuilder(); queryBuilder.where().eq(MaquinaApp.MACHINE_FIELD, buscada.getId()); PreparedQuery<MaquinaApp> preparedQuery = queryBuilder.prepare(); maquinaApp = maquinaAppDao.query(preparedQuery); if (maquinaApp.size() > 0) { //Eliminar las aplicaciones for (MaquinaApp i : maquinaApp) { maquinaAppDao.delete(i); } } else { System.out.println("No existen aplicaciones para la maquina virtual en cuestion"); } //Eliminar mquina virtual maquinaVirtualDao.delete(buscada); //Eliminar carpeta de la maquina virtual FileUtils.deleteDirectory(new File("/tmp/" + usernameLogged + "/" + nombreMaquina)); return true; } } else { System.out.println("EL usuario loggeado no existe"); } } else { System.out.println("No pueden haber campos vacios"); } return false; }); //Correr mquina virtual post("/run-vm", (Request rqst, Response rspns) -> { String username = rqst.queryParams("userLogged"); String nombreMaquina = rqst.queryParams("nombreMaquina"); MaquinaVirtual maquinaBuscada = null; if (username != null && nombreMaquina != null && !nombreMaquina.equals("") && !nombreMaquina.equals("")) { Usuario user = usuarioDao.queryForId(username); if (user != null) { //Listar mquinas virtuales del usuario List<MaquinaVirtual> maquinasVirtuales = listMachines(username); for (MaquinaVirtual maquina : maquinasVirtuales) { if (maquina.getNombre().equals(nombreMaquina)) { maquinaBuscada = maquina; break; } } if (maquinaBuscada != null) { try { //Comando para ejecutar el comando vagrant up en el shell ProcessBuilder pb = new ProcessBuilder("vagrant up"); Process p; String path = "/tmp/" + username + "/" + nombreMaquina; File file = new File(path); //Validar si es un directorio if (file.exists() && file.isDirectory()) { pb.directory(file); p = pb.start(); return true; } } catch (IOException ex) { } } } } return false; }); //Destruir mquina virtual post("/destroy-vm", (Request rqst, Response rspns) -> { String username = rqst.queryParams("userLogged"); String nombreMaquina = rqst.queryParams("nombreMaquina"); MaquinaVirtual maquinaBuscada = null; if (username != null && nombreMaquina != null && !nombreMaquina.equals("") && !nombreMaquina.equals("")) { Usuario user = usuarioDao.queryForId(username); if (user != null) { //Listar mquinas virtuales del usuario List<MaquinaVirtual> maquinasVirtuales = listMachines(username); for (MaquinaVirtual maquina : maquinasVirtuales) { if (maquina.getNombre().equals(nombreMaquina)) { maquinaBuscada = maquina; break; } } if (maquinaBuscada != null) { try { //Comando para ejecutar el comando vagrant up en el shell ProcessBuilder pb = new ProcessBuilder("vagrant destroy -f"); Process p; String path = "/tmp/" + username + "/" + nombreMaquina; File file = new File(path); //Validar si es un directorio if (file.exists() && file.isDirectory()) { pb.directory(file); p = pb.start(); return true; } } catch (IOException ex) { } } } } return false; }); //Reanudar mquina virtual post("/resume-vm", (Request rqst, Response rspns) -> { String username = rqst.queryParams("userLogged"); String nombreMaquina = rqst.queryParams("nombreMaquina"); MaquinaVirtual maquinaBuscada = null; if (username != null && nombreMaquina != null && !nombreMaquina.equals("") && !nombreMaquina.equals("")) { Usuario user = usuarioDao.queryForId(username); if (user != null) { //Listar mquinas virtuales del usuario List<MaquinaVirtual> maquinasVirtuales = listMachines(username); for (MaquinaVirtual maquina : maquinasVirtuales) { if (maquina.getNombre().equals(nombreMaquina)) { maquinaBuscada = maquina; break; } } if (maquinaBuscada != null) { try { //Comando para ejecutar el comando vagrant up en el shell ProcessBuilder pb = new ProcessBuilder("vagrant resume"); Process p; String path = "/tmp/" + username + "/" + nombreMaquina; File file = new File(path); //Validar si es un directorio if (file.exists() && file.isDirectory()) { pb.directory(file); p = pb.start(); return true; } } catch (IOException ex) { } } } } return false; }); //Asociar app a una mquina virtual post("/associate-app", (Request rqst, Response rspns) -> { String username = rqst.queryParams("username"); String nombreMaquina = rqst.queryParams("nombreMaquina"); String nombreApp = rqst.queryParams("nombreApp"); Usuario user = usuarioDao.queryForId(username); if (user != null) { //Verificar si el usuario tiene la mquina List<MaquinaVirtual> maquinas = listMachines(username); MaquinaVirtual buscada = null; for (MaquinaVirtual maquina : maquinas) { if (maquina.getNombre().equals(nombreMaquina)) { buscada = maquina; break; } } if (buscada != null) { App app = appDao.queryForId(nombreApp); //Verificar si la app existe y si est para el mismo sistema operativo que tiene la mquina if (app != null && app.getSistemaOperativo().getNombre() .equals(buscada.getSistemaOperativo().getNombre())) { //Agregar a la base de datos MaquinaApp maquinaApp = new MaquinaApp(buscada, app); maquinaAppDao.create(maquinaApp); //Crear registro en el Vagrantfile String path = "/tmp/" + username + "/" + nombreMaquina; insertarCookbooksANodos(new ArrayList(buscada.getNodos()), app, path); return true; } else { System.out.println("La app no existe"); } } else { System.out.println("No se encontr la mquina en la lista del usuario"); } } else { System.out.println("El usuario no existe"); } return false; }); //Listar todas las aplicaciones get("/list-apps-all", (Request rqst, Response rspns) -> { return appDao.queryForAll(); }, new JsonTransformer()); // Cargar datos de prueba get("/add-testdata", (Request rqst, Response rspns) -> { try { if (connectionSource != null) { TableUtils.createTableIfNotExists(connectionSource, Usuario.class); TableUtils.createTableIfNotExists(connectionSource, SistemaOperativo.class); TableUtils.createTableIfNotExists(connectionSource, MaquinaVirtual.class); TableUtils.createTableIfNotExists(connectionSource, App.class); TableUtils.createTableIfNotExists(connectionSource, MaquinaApp.class); TableUtils.createTableIfNotExists(connectionSource, Cookbook.class); TableUtils.createTableIfNotExists(connectionSource, CookbookApp.class); TableUtils.createTableIfNotExists(connectionSource, Nodo.class); } testData(); } catch (SQLException ex) { return "Error agregando informacin de prueba"; } return "OK"; }); //Eliminar datos de prueba get("/delete-testdata", (Request rqst, Response rspns) -> { try { TableUtils.dropTable(connectionSource, Usuario.class, true); TableUtils.dropTable(connectionSource, MaquinaVirtual.class, true); TableUtils.dropTable(connectionSource, SistemaOperativo.class, true); TableUtils.dropTable(connectionSource, App.class, true); TableUtils.dropTable(connectionSource, Cookbook.class, true); TableUtils.dropTable(connectionSource, MaquinaApp.class, true); TableUtils.dropTable(connectionSource, CookbookApp.class, true); TableUtils.dropTable(connectionSource, Nodo.class, true); } catch (SQLException ex) { return "Error eliminando la informacin"; } return "OK"; }); }
From source file:pl.edu.icm.coansys.commons.shell.JavaShellRunner.java
private static ProcessBuilder buildProcess(String[] args) { ProcessBuilder pb = new ProcessBuilder(args[0]); Map<String, String> env = pb.environment(); for (int i = 3; i < args.length; i = i + 2) { env.put(args[i], args[i + 1]);//w w w. jav a2 s .c om } pb.directory(new File(args[1])); return pb; }
From source file:com.microsoft.alm.plugin.external.utils.ProcessHelper.java
public static Process startProcess(final String workingDirectory, final List<String> arguments) throws IOException { final ProcessBuilder pb = new ProcessBuilder(arguments); // Disable any telemetry that the tool may initiate pb.environment().put("tf_notelemetry", "TRUE"); pb.environment().put("TF_ADDITIONAL_JAVA_ARGS", "-Duser.country=US -Duser.language=en"); if (StringUtils.isNotEmpty(workingDirectory)) { pb.directory(new File(workingDirectory)); }/*from w w w .j a v a2s.c om*/ return pb.start(); }
From source file:org.apache.tajo.plan.function.stream.StreamingUtil.java
/** * Set up the run-time environment of the managed process. * * @param pb {@link ProcessBuilder} used to exec the process *///from ww w . j a v a 2 s . c om private static void setupEnvironment(ProcessBuilder pb) { String separator = ":"; Map<String, String> env = pb.environment(); // Add the current-working-directory to the $PATH File dir = pb.directory(); String cwd = (dir != null) ? dir.getAbsolutePath() : System.getProperty("user.dir"); String envPath = env.get(PATH); if (envPath == null) { envPath = cwd; } else { envPath = envPath + separator + cwd; } env.put(PATH, envPath); }
From source file:org.apache.stratos.common.util.CommandUtils.java
public static String executeCommand(String command, Map<String, String> envParameters) throws IOException { String line;//from w w w . j ava 2 s . co m ProcessBuilder pb = new ProcessBuilder(command); Map<String, String> env = pb.environment(); env.putAll(envParameters); Process p = pb.start(); StringBuilder output = new StringBuilder(); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((line = in.readLine()) != null) { if (log.isDebugEnabled()) { log.debug("output = " + line); } output.append(line).append(NEW_LINE); } StringBuilder errors = new StringBuilder(); BufferedReader error = new BufferedReader(new InputStreamReader(p.getErrorStream())); while ((line = error.readLine()) != null) { if (log.isDebugEnabled()) { log.debug("error = " + line); } errors.append(line).append(NEW_LINE); } if (errors.length() > 0) { throw new RuntimeException("Command execution failed: " + NEW_LINE + errors.toString()); } return output.toString(); }
From source file:com.mewmew.fairy.v1.book.Xargs.java
public static void exec(Map<String, String> env, String cmd[], boolean redirectError, Output<String> output) throws IOException, InterruptedException { ProcessBuilder pb = new ProcessBuilder(cmd); if (env != null) { pb.environment().putAll(env); }//from ww w. jav a 2 s . c om if (redirectError) { pb.redirectErrorStream(true); } final Process p = pb.start(); if (!redirectError) { new Thread(new Runnable() { public void run() { try { LineIterator err = new LineIterator(new InputStreamReader(p.getErrorStream())); while (err.hasNext()) { err.next(); } } finally { } } }).start(); } LineIterator out = new LineIterator(new InputStreamReader(p.getInputStream())); while (out.hasNext()) { output.output(out.nextLine()); } int code = p.waitFor(); if (code != 0) { throw new RuntimeException(String.format("return != 0, code = %d", code)); } }