原文出处:http://www.myexception.cn/database/646403.html
java 执行cmd命令及mongodb脚本
最近遇到了一个问题,起因是因为想使用java程序来关闭正在运行的Mongod。
最开始想使用强制结束进程的taskkill命令,但是关闭之后Mongo重启会有问题,于是作罢。
在想用Mongo的java api来执行shutdown操作。代码如下:
Mongo m = new Mongo(); db = m.getDb("admin"); db.eval("db.shutdownServer"); // 或者是如下的代码: db.command("shutdown");
这种情况会提示说,没有auth执行的Mongod只能用Localhost的方式登录来执行shutdown。
于是开始想别的办法。因为考虑到oracle是能够执行脚本的,因此想到mongodb也应该支持脚本,于是登录官网,惊喜,官网居然支持中文。然后查到确实是能够执行脚本的,Ok,开始写脚本,脚本必须是以.js结尾的。内容如下:
db = connect("admin"); db.shutdownServer();
然后java的代码如下:
String cmd = "D:/mongodb-win32-i386-1.8.2/bin/mongo --shell " + "D:/mongodb-win32-i386-1.8.2/123.js"; Runtime rt = Runtime.getRuntime(); String[] command = new String[]{"cmd.exe" , "/C" , cmd}; try { rt.exec(command); } catch (IOException e) { e.printStackTrace(); }
在执行mongo的时候带--shell参数就能够指定js文件的位置了。
通过这种方式能够正常的关闭正在执行的mongod。但是还有个缺陷就是需要用到java文件,好吧,为了更简单于是想到另外的办法,实现类似的操作。java代码如下:
String cmd = "D:/mongodb-win32-i386-1.8.2/bin/mongo"; Runtime rt = Runtime.getRuntime(); String[] command = new String[]{"cmd.exe" , "/C" , cmd}; try { Process process = rt.exec(command); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = ""; BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(process.getOutputStream())); bw.write("use admin;"); bw.write("\n"); bw.flush(); bw.write("db.shutdownServer();"); bw.flush(); bw.close(); while((line = br.readLine()) != null){ System.out.println(line); } } catch (IOException e) { e.printStackTrace(); }
需要注意的就是使用BufferedWriter建立了输出流之后就能够跟向控制台输出命令一样来执行命令了。一定要注意加入\n的操作才能执行。
终于能够最方便的执行了。
相关推荐
Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...
在本演示文稿中,我们将重点讨论如何通过CMD命令行界面操作MongoDB数据库。 首先,我们来看对数据库的基本操作。在MongoDB中,你可以使用`use <database_name>`命令来切换或创建数据库。如果指定的数据库不存在,...
"java+MongoDB实现存图片、下载图片的方法示例" 本文主要介绍了使用java和MongoDB实现存图片和下载图片的方法,并结合实例形式详细分析了java结合MongoDB实现图片的存储和下载相关操作技巧。 Java和MongoDB简介 ...
目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中找到对应的依赖,例如: ```xml <groupId>org.mongodb <artifactId>mongodb-driver-sync <version>4.3.0 ``` 接下来,我们需要配置MongoDB...
它基于Java 6及更高版本,实现了MongoDB的Wire Protocol,允许Java应用与MongoDB进行通信。Java驱动分为几个主要版本,每个版本可能对应不同的功能特性和兼容性。 2. 版本选择: 选择MongoDB Java驱动版本时,应...
### MongoDB、Java与对象关系映射 #### MongoDB简介与特性 MongoDB作为一种强大的NoSQL数据库,在处理非结构化数据方面有着显著的优势。它通过使用JSON(JavaScript Object Notation)格式来存储和检索数据,简化...
mongodb创建库以及基本使用脚本说明.
本篇文章将深入讲解如何使用Java来上传MP4文件到MongoDB,并进行下载操作。 首先,我们需要引入MongoDB的Java驱动程序。MongoDB提供了Java驱动库,通过Maven或Gradle可以轻松添加依赖。在Maven的`pom.xml`中,你...
使用Java上传MP4文件至MongoDB数据库,并下载 本文将详细介绍如何使用Java上传MP4文件至MongoDB数据库,并下载。首先,我们需要创建一个Maven项目,并配置pom.xml文件,引入MongoDB相关的依赖和单元测试的依赖。...
为了方便开发者使用 Java 进行开发,MongoDB 提供了官方的 Java 驱动程序(MongoDB Java Driver),使得 Java 应用能够轻松地与 MongoDB 数据库进行交互。 #### 二、基本概念与连接 在开始使用 MongoDB Java Driver...
mongo-java-driver-3.4.3.jar 是 MongoDB 官方为 Java 开发者提供的 Java 驱动程序的一个特定版本(3.4.3)。这个 JAR 文件包含了与 MongoDB 数据库进行交互所需的类和接口,允许 Java 应用程序连接到 MongoDB 实例...
4. **启动服务**:在命令行中,使用`mongod`命令启动MongoDB服务。如果你在安装过程中已经选择了创建服务,那么可以通过服务管理器启动或停止MongoDB服务。 MongoDB的Java API: 1. **引入依赖**:在Java项目中,你...
标题“MongoDB连接池for Java”指的是在Java环境中,针对MongoDB数据库实现的连接池解决方案。这种解决方案通常基于特定的Java驱动程序,如MongoDB的Java驱动程序(com.mongodb.client.MongoClients),它提供了连接...
Java连接MongoDB主要依赖于MongoDB的Java驱动程序,这是一个允许Java应用程序与MongoDB数据库进行交互的库。在本文中,我们将深入探讨如何使用Java连接MongoDB,涉及的知识点包括MongoDB Java驱动程序的安装、配置,...
- **启动服务:** 在命令行中输入`mongod`命令启动MongoDB服务(需要确保已将MongoDB的bin目录加入到系统PATH环境变量中)。 ##### 1.3 添加Maven依赖 在项目的`pom.xml`文件中添加以下依赖: ```xml ...
Java 中 MongoDB 使用环境详细配置 Java 中 MongoDB 使用环境详细配置是指在 Windows 平台(WinXP)上安装、运行、安装 Windows 服务的笔记,以作备忘。下面是一些重要的知识点: 1. MongoDB 的下载和安装 ...
这里提到的"Java连接mongoDB需要的jar包(3.9.1)"是指Java开发者用于连接MongoDB数据库的一组关键库文件,包括`bson-3.9.1.jar`、`mongodb-driver-3.9.1.jar`和`mongodb-driver-core-3.9.1.jar`。这些JAR文件是...
本篇将深入探讨"mongodb_java_2.6_API",即MongoDB 2.6版本的Java驱动程序API,了解如何使用Java进行MongoDB的开发。 1. **MongoDB Java驱动程序概述** MongoDB的Java驱动程序是Java开发者与MongoDB服务器通信的...
MongoDB Java驱动API是用于与MongoDB数据库交互的Java库,它是MongoDB官方提供的一个关键组件,使得Java开发者能够方便地在应用程序中存取数据。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java驱动API则...