How to run NPM Command in Java using Process Builder

后端 未结 2 1405
遥遥无期
遥遥无期 2021-01-07 06:29
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import         


        
2条回答
  •  轮回少年
    2021-01-07 07:23

    In Unix or Linux os , the PathBuilder takes the default environment path , so we have to change the environment path and run the npm command through the bash.

        package com.ainosoft.space.manager.command.executor;
        import java.io.File;
        import java.util.Map;
    
        public class CommandExecutor {
        public void exceuteCommand(String commandString,String 
        directoryToExecuteCommand) {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder(new String{"bash", "-c",commandString});
            Map env = processBuilder.environment();
            processBuilder.directory(new File(directoryToExecuteCommand));
            String envPath="/home/admin123/.nvm/versions/node/v10.15.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin";
            env.put("PATH",envPath);
            processBuilder.start();
         } catch (Exception e) {
            e.printStackTrace();
       }
    
      }
    public static void main(String args[]) {
        CommandExecutor commandExecutor=new CommandExecutor();
        commandExecutor.exceuteCommand("npm install", "/home/admin123/Desktop");
    }
    
    }
    

提交回复
热议问题