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

  • 相关阅读:
    [MSDN] How to Debug a Release Build
    抽象成员 虚方法
    强制类型转换符 和 as 运算符
    一份超长的MySQL学习笔记
    Java反射基础
    c3p0config.xml
    一个JDBC封装工具类
    Spring5——IOC操作Bean管理(基于xml文件)
    Android游戏开发大全
    移除项目里的所有.svn命令
  • 原文地址:https://www.cnblogs.com/lixv2018/p/12421399.html
Copyright © 2011-2022 走看看