【发布时间】:2017-07-17 18:23:02
【问题描述】:
我正在开发一个小型 Java 程序,该程序使用 MongoDB 解析 .txt 文件并很好地显示信息以供分析。到目前为止,我不得不在 Windows 上打开 cmd 并运行“mongod”行来启动数据库(我在我的 Windows 环境变量中设置了 Mongo,所以我不必指向 MongoDB 安装的路径)。然后我可以运行 Java 程序。要停止 mongod,我可以关闭启动它的 cmd 窗口,也可以打开另一个 cmd 窗口并发出以下一系列命令:“mongo”、“use admin”、“db.shutdownServer()”。
我希望能够在我的 Java 程序中自动初始化和终止 mongod,这样当我打开程序的 jar 时,服务器将自动启动,然后在程序关闭时停止。我知道我需要在哪里插入将执行这些命令的代码,我只是不知道如何编写它们。
到目前为止,这是我发现的:
涉及“Runtime.getRuntime().exec("");”的建议- 这确实适用于第一个命令“mongod”,我相信“mongo”也是如此,但不适用于“使用管理员”。我猜这要么是因为命令是单独发出的(而“mongo”“use admin”和“db.shutdownServer() 需要一起发出,顺序)或者是因为“use admin”行中的空格。我也读过,这种方法很粗糙,不应该使用。
涉及“ProcessBuilder”的建议 - 我不太了解这种方法。此外,我遇到的关于这种方法的所有建议都没有提到命令中有空格,因此如果要采用这种方法,也需要弄清楚这一点。
还有其他方法吗,或者我该如何实现这两种方法之一?
【问题讨论】:
-
查看流程和流程构建器