Java exec() mysqldump 错误 : Couldn't find table ">"

标签 java exec mysql

我正在从 Java 类执行 mysqldump 命令,但我不断收到标题中提到的错误。

这是我正在使用的代码:

        Process runtimeProcess = Runtime.getRuntime().exec("mysqldump -uroot -pmypassword valo > /etc/valbu.sql");
        int processComplete = runtimeProcess.waitFor();
        if(processComplete == 0){
            System.out.println("Backup taken successfully");
        } else {
            InputStream stderr = runtimeProcess.getErrorStream();
            InputStreamReader isr = new InputStreamReader(stderr);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
            System.out.println("<ERROR>");
            while ( (line = br.readLine()) != null)
                System.out.println(line);
            System.out.println("</ERROR>");
            System.out.println("Could not take mysql backup");
        }

看起来他不明白 > 不是一个表,而是一个要转储的命令。

最佳答案

常见问题 - 您无法使用管道或重定向执行语句。它们只能由 shell 执行。

延伸阅读

关于Java exec() mysqldump 错误 : Couldn't find table ">",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194398/

相关文章:

MySQL Server 频繁关闭,现在不会重新启动

mysql - 用户定义的变量不适用于 where 子句

python - 为什么在函数内部调用时 exec() 的工作方式不同以及如何避免它

php - 使用 session 数据从另一个脚本运行脚本

Java 模运算符优先级

java - 升级到 Java 11 JavaFX 令人头疼

c - 如何让 execvp 函数执行每个命令行参数?

mysql - 如何在mysql中从不同表名具有不同值的多个列中选择?

java - CVS - 比较时创建 Zip

java - 删除哈希表中的方法