【发布时间】:2009-02-20 17:00:52
【问题描述】:
我正在从 Java 调用 mysql.exe 来加载数据库。因为进程只是挂起,我需要创建一个命令文件并传入用户名和密码。
command.bat 的示例内容:
mysql --user="%1" --password="%2" mydatabase < myscript.sql
问题是我看不到 mysql 命令的输出以查看是否有任何错误。它们显示在命令行上,但我似乎无法将它们捕获到用于解析的文件或 InputStream 中。
如何查看mysql命令的输出?
注意:直接从 Java 调用 mysql.exe 会挂起,因为 mysql 似乎没有将信息发送到缓冲区。
注意:我们使用 mysql.exe 而不是 JDBC,因为我们需要更新触发器之类的东西。为了将所有语句提交到数据库,我们需要解析所有命令并一次传递它们。
注意:这是一个正在运行的 MySQL 数据库,需要升级。
【问题讨论】:
-
您是否尝试查看错误流而不是输出流?
-
试试-B切换到mysql.exe?
-
看起来这家伙用 C# 做了同样的事情,所以它应该是可能的。 jdconley.com/blog/archive/2006/08/01/…如果您粘贴代码,我们可以查看您的订单是否错误。记得在调用 waitFor() 之前读取输出。
-
我有一个 streamgobbler 可以将错误和输入流读取到字符串缓冲区中。它扩展了线程,因此它可以同时执行它们。
-
你能发布一些代码吗?具体来说,我想看看你的流处理和 Runtime.exec() 调用。