RunTime类

1.该类主要代表了应用程序的运行环境。一个RunTime就代表一个运行环境。

2.RunTime类常用的方法:

(1) getRuntime():该方法用于返回当前应用程序的运行环境对象。

(2) exec(String command):该方法用于根据指定的路径执行对应的可执行文件。

(3) freeMemory():该方法用于返回Java虚拟机中的空闲内存量,以字节为单位。

(4) maxMemory():该方法用于返回Java虚拟机试图使用的最大内存量。

(5) totalMemory():该方法用于返回Java虚拟机中的内存总量。

 

主要是记录这个exec(String command) 方法:

       该方法用于根据指定的路径执行对应的可执行文件

 

简单实例:

//打开电脑上的notepad++
Runtime runtime = Runtime.getRuntime();
		String command = "E:\\notepad\\notepad++.exe";
		try {
			runtime.exec(command);
		} catch (IOException e) {
			e.printStackTrace();
		}

实际项目遇到的需求:导出几张mysql的业务表(几十万的数据量),生成sql文件,然后结合其余业务各种压缩成zip文件。起初走的connection查询数据去拼接INSERT INTO table_name(id,name) VALUES(3, 'SuperMan') ON DUPLICATE KEY UPDATE name='SuperMan'这样的sql文件。虽然实现了,但是处理时间有点稍微慢点,果断放弃走connection,用mysqldump用去导出sql文件,结果秒出。

String command = "cmd /c   C:\\Users\\T440P\\Desktop\\sjjy20200826\\sjjy\\mysql\\bin\\mysqldump.exe  -usjjy -psjjy@123! --port 3307 --no-create-info --lock-all-tables --compact --replace --complete-insert --default-character-set=utf8  --databases 库名 --tables  table1 table2 ...  -w "查询条件"   > C:\\Users\\T440P\\Desktop\\sql.sql";
// /c是close的简写  代表cmd执行后关闭窗口,/k是keep的简写 代表cmd执行后保留窗口
InputStream in = null;
		// 执行命令行
		Runtime runtime = Runtime.getRuntime();
		try {
			// cmd /k在执行命令后不关掉命令行窗口 cmd /c在执行完命令行后关掉命令行窗口 \\表示转译符也可使用/替代,linux使用/
			Process process = runtime.exec(command);
			  BufferedReader result = null; 
			String str = null; 
			in = process.getInputStream();
            result = new BufferedReader(new InputStreamReader(in)); 
           while ((str = result.readLine()) != null) { 
                System.out.println("info====>:"+str); 
            }
			result.close();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if(in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

process返回值中可以拿到两个IO流

           process.getInputStream();//读取输入日志信息
           process.getErrorStream();//读取错误日志信息

 

 

mysqldump命令导出:https://blog.csdn.net/qq_35044419/article/details/108577918

mysql命令导入:https://blog.csdn.net/qq_35044419/article/details/108580622

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值