0

第一篇文章 - 完成语言新手,但你必须从某个地方开始。目前我的问题如下

1:打开命令行窗口并转到特定目录

2:从那里运行第三方 .exe (LogParser.exe),并使用 SQL 查询作为其参数

我知道 Runtime.getRuntime().exec("cmd.exe"); 但这只是调出命令窗口。

但是我如何完成第二步,即插入查询?是否可以将 SQL 查询作为字符串处理并将其传递给命令窗口?

例如,命令窗口的输出看起来像这样

Logparser.exe“从应用程序中选择前 5 个 *”

也许这是非常基本的,但如果是道歉,但基本也是我现在所处的位置

4

1 回答 1

0

也许是这样的:

ProcessBuilder pb = new ProcessBuilder("c:\path\to\LogParser.exe", "select top 5 * from application");
Process p = pb.start();
InputStreamReader is = new InputStreamReader(p.getInputStream());
p.waitFor();
char c;
while ((c = is.read()) != -1) {
  System.out.print(c);
}
is.close();

如果您绝对必须使用命令提示符,那么您可以使用p.getOutputStream()将字符串发送到其他进程的输入缓冲区 (STDIN)。

(在 Unix 上用 Groovy 编写的“ls”、“-l”测试了上面的代码,所以 YMMV。)

于 2013-02-12T17:15:14.763 回答