用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",
"e",
"D:\\aaa.rar",
"D:\\"
).directory(

本文介绍了如何在Windows操作系统中,利用Java的Process类原生能力来解压RAR压缩包。由于`sh -c unzip`命令不适用于Windows,作者建议避免这种环境依赖性强的方法,推荐使用Java读取、解压并写入文件系统的方式,以确保跨平台兼容性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



