天天看點

Java實作第三方程式調用Java中提供Runtime類和Process Builder類兩種方式來執行外部程式

Java中提供Runtime類和Process Builder類兩種方式來執行外部程式

Runtime類

ProcessBuilder類

//使用processBuilder來調用第三方應用程式
    @Test
    public void testProcessBuilder() throws IOException {
        //建立processBuilder對象
        ProcessBuilder processBuilder = new ProcessBuilder();
        //設定第三方應用程式的指令
      	//processBuilder.command("ping","127.0.0.1");
        List<String> command = new ArrayList<>();
        command.add("ping");
        command.add("127.0.0.1");
        processBuilder.command(command);
        //将标準輸入流和錯誤流合并
        processBuilder.redirectErrorStream(true);
        //啟動一個程序
        Process process = processBuilder.start();
        //通過标準輸入流來拿到正常和錯誤的資訊
        InputStream inputStream = process.getInputStream();
        //轉成字元流
        InputStreamReader reader = new InputStreamReader(inputStream,"gbk");
        //緩沖
        char[] chars = new char[1024];
        int len = -1;
        while ((len = reader.read(chars))!=-1){
            String row = new String(chars,0,len);
            System.out.println(row);
        }
        inputStream.close();
        reader.close();
    }