zoukankan      html  css  js  c++  java
  • eclipse 调用cmd运行DataX

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    
    public class TestDatax {
        Process process;
        public void CmdTest(String json) throws IOException {
            process=Runtime.getRuntime().exec("cmd");   //获取控制台
            new Thread(){
                public void run() {
                    try {
                        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));  //获取输入流
                        bw.write("CHCP 65001");
                        bw.newLine();
    
                        bw.write("d:");
                        bw.newLine();
    
                        bw.write("cd D:\datax\bin");
                        bw.newLine();//因为读取时是一行行读取的,不加newline无法继续往下读
    
                        bw.write("python datax.py "+json);
                        bw.newLine();
    
    
                        bw.flush();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }.start();;
            new Thread() {
                public void run() {
                    try {
                        BufferedReader br=new BufferedReader(new InputStreamReader(process.getInputStream()));
                        String cmdout="";
                        while ((cmdout=br.readLine())!=null) {
                            System.out.println(cmdout);
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }.start();
    
        }
    
        public static void main(String[] args) throws IOException {
            TestDatax cmd=new TestDatax();
            String json="D:\datax\job\job.json";
            cmd.CmdTest(json);
    
        }
    }

    from:https://www.cnblogs.com/goubb/p/12416625.html

    控制台出现乱码,因为已经在cmd输入了CHCP 65001,所以只需要更改eclipse的编码方式为utf-8

  • 相关阅读:
    9本Java程序员必读的书
    最短路径问题:dijkstar
    RSA加密算法
    BFC 浅谈
    纯css3配合vue实现微信语音播放效果
    Vue内置组件keep-alive的使用
    vim常用命令
    Java实体映射工具MapStruct的使用
    hexo文章编写部分语法总结以及hexo使用
    高级进程间通信
  • 原文地址:https://www.cnblogs.com/lixv2018/p/12421399.html
Copyright © 2011-2022 走看看