通过Java +执行mysql命令写出来

时间:2016-01-12 21:11:21

标签: java mysql macos

我需要用Java执行mysql命令并写出结果。 但是,只创建了空文件。

执行环境是MacOS 10.11.2。

public class Main {
    public static void main(String[] args) {
        String[] cmd = new String[]{"/bin/sh", "-c", "mysql", "-u", "root", "-ppassword", "databaseName"};

        ProcessBuilder builder = new ProcessBuilder(cmd);
        builder.redirectInput(ProcessBuilder.Redirect.from(new File("sample.sql")));
        builder.redirectOutput(new File("result.tsv"));

        try {
            Process p = builder.start();
            p.waitFor();
            System.out.println(builder.redirectInput());
        } catch (IOException | InterruptedException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

sample.sql select * from sample;

当主方法执行时,显示重定向以从文件中读取" sample.sql"在控制台上。 而且,result.tsv仍然是空的。

如果我直接在Terminal.app中输入mysql -u root -ppassword -D sql2xlsx < sample.sql > result.tsv, result.tsv不为空,并且写了预期的结果。

0 个答案:

没有答案