用Java原生自带的Process能力在windows环境解压rar压缩包
背景:今天在windows环境中的idea运行springboot项目的代码,结果发现有同学写了这样一组代码:
问题:windows上是使用不了sh -c unzip命令的,所以尝试用windows的命令替换,当然实际情况最好的是不要用这样的方式解压代码,对于环境依赖性太强了。
应该用java读取文件,解压然后再写入系统,这样不论什么环境都可以运行了。
直接上代码:
package com.liur.demo.test;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
/**
*
* 本用例的目的用来在windows系统中实现压缩文件解压功能
* 前置条件1:在D盘根目录创建一个aaa.rar的压缩文件
* 前置条件2:将unrar.exe文件复制到C:\Windows目录下,或者配置到path中
* 执行main方法后,会将aaa.rar文件解压到D盘根目录
*
* */
public class ProcessBuilderTest {
public static void main(String[] args) {
//windows和linux有点不同,windows的参数必须分开
ProcessBuilder processBuilder = new ProcessBuilder(
"unrar",