尝试使用Java将SQL查询插入命令行窗口

尝试使用Java将SQL查询插入命令行窗口,java,sql,command-prompt,Java,Sql,Command Prompt,这是语言的第一个新手,但你必须从某个地方开始。目前我的问题如下 1:打开命令行窗口并转到特定目录 2:从那里运行第三方.exe(LogParser.exe),并将SQL查询作为其参数 我知道Runtime.getRuntime().exec(“cmd.exe”);但这只是打开了命令窗口 但是如何完成第二步,即插入查询? 是否可以将SQL查询作为字符串处理并将其传递到命令窗口 e、 g.从到命令窗口的输出如下所示 Logparser.exe“从应用程序中选择前5个*” 也许这是非常基本的,但如果是

这是语言的第一个新手,但你必须从某个地方开始。目前我的问题如下

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

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

我知道Runtime.getRuntime().exec(“cmd.exe”);但这只是打开了命令窗口

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

e、 g.从到命令窗口的输出如下所示

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

也许这是非常基本的,但如果是道歉的话,但基本就是我现在的处境

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)


(使用Groovy so YMMV编写的“ls”、“-l”在Unix上测试了上述代码。)

您肯定不想使用JDBC连接到db吗?不(无论如何,还没有)。我这样做的原因只是想看看在后台运行时是否可以从LogParser获取信息。运行日志解析器时,它会将信息输出到cmd屏幕。如果我可以让这个查询工作,那么我可以操纵其他人写入文件等并进行查询。嗨,谢谢。有点用。问题在于日志解析器——当您像示例一样自动运行它时,它会打开完整的windows应用程序,并且不会运行后续查询。我能想到的唯一解决办法是,首先尝试在正确的位置打开windows控制台,然后运行另一个方法插入以下字符串“LogParser.exe”从应用程序“open
cmd.exe
”中选择top 5*,如上所示,但将命令作为字符串传递给进程。getOutputStream()就像他们是最终用户输入的一样。嗨-我找到了一种方法。我在windows中创建了一个批处理文件,将查询放入批处理文件中,并通过Java Runtime rt=Runtime.getRuntime();rt.exec(“cmd/c start c:\\Temp\\test.bat”);从中运行exe;