使用java调用cmd,实现数据库备份与还原,打开网页,打开应用

实现数据库备份与还原

有一个坑,那就是空格问题:-p密码 这个是紧紧靠在一起的,不能分开,否则会将密码当作一个数据库的名称
mysqldump空格-uroot空格-p123456空格erudition > D:/ddd.sql"
我的数据库是存在密码的,所以上面的cmd命令只适用于存在密码的数据库使用

// 数据库备份(-u账号 -p密码 数据库名 > sql文件【给出路径以及文件名后缀即可,文件会自动生成,但是路径需要自己创建】)
Runtime.getRuntime().exec("cmd.exe /c mysqldump -uroot -p123456 erudition > D:/ddd.sql");
// 数据库还原(-u账号 -p密码 数据库名 < sql文件【本地文件的地址】)
Runtime.getRuntime().exec("cmd.exe /c mysql -uroot -p123456 erudition < D:/ddd.sql");

打开网页

网址随意输入,不过浏览器使用的就是win10系统默认的浏览器了

Runtime.getRuntime().exec("cmd.exe /c www.baidu.com");

打开应用(计算器、……)

加不加后缀都无所谓,反正都能实现,想正规一点可以加上后缀

Runtime.getRuntime().exec("cmd.exe /c calc");
Runtime.getRuntime().exec("cmd.exe /c calc.exe");
Runtime.getRuntime().exec("cmd.exe /c 应用名");
Runtime.getRuntime().exec("cmd.exe /c 应用名.exe");

请看源代码

一个工具类CmdUtil,一个控制层ExeController,一个http请求。

public class CmdUtil {
    public static void cmd(String cmd) throws IOException {
        Runtime runtime = Runtime.getRuntime();
        runtime.exec(cmd);
    }
}
@RestController
public class ExeController {
    @RequestMapping("/calc")
    public static void calc() throws IOException {
        // 计算器
        String cmd = "calc";  // 不加后缀名
        String cmd2 = "calc.exe";  // 加后缀名
        CmdUtil.cmd(cmd);
        CmdUtil.cmd(cmd2);
    }
    @RequestMapping("/back")
    public static void back() throws IOException {
        // 数据库备份
        String back = "mysqldump -uroot -p123456 erudition > D:/ddd.sql";
        CmdUtil.cmd(back);
    }
    @RequestMapping("/recover")
    public static void recover() throws IOException {
        // 数据库还原
        String recover = "mysql -uroot -p123456 erudition < D:/ddd.sql";
        CmdUtil.cmd(recover);
    }
}
### 打开计算器(应用)
POST http://localhost:8080/calc
### 数据库备份
POST http://localhost:8080/back
### 数据库还原
POST http://localhost:8080/recover

至于打开网址,前端一行代码的事情,没必要让后台来处理。

window.open("网址全称");
window.open("http://www.baidu.com");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值