linux安装rar5.3并利用Java调用命令压缩/解压文件
一、安装支持库
yum install -y gcc gcc-c++ autoconf wget
二、安装RAR
1.下载rar源码包
wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
2.解压安装
tar -zxvf rarlinux-x64-5.3.0.tar.gz cd rar make && make install /bin/cp -f rar_static /usr/local/bin/rar && /bin/cp -f rar_static /usr/local/bin/unrar cd .. rm -rf rar
三、简单使用
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
四、Java调用解压命令源码
/** * RAR 5.0以上调用命令解压 * @author liuyazhuang * */ public class RarToFile { /* * cmd 压缩与解压缩命令 */ private static String rarCmd = "rar a "; private static String unrarCmd = "rar x "; /** * 将1个文件压缩成RAR格式 * rarName 压缩后的压缩文件名(不包含后缀) * fileName 需要压缩的文件名(必须包含路径) * destDir 压缩后的压缩文件存放路径 */ public static void RARFile(String rarName, String fileName, String destDir) { rarCmd += destDir + rarName + ".rar " + fileName; try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(rarCmd); }catch(Exception e) { System.out.println(e.getMessage()); } } /** * 将1个RAR文件解压 * rarFileName 需要解压的RAR文件(必须包含路径信息以及后缀) * destDir 解压后的文件放置目录 */ public static void unRARFile(String rarFileName, String destDir) { unrarCmd += rarFileName + " " + destDir; try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(unrarCmd); } catch (Exception e) { System.out.println(e.getMessage()); } } }
如果上述Java源码在运行的时候出现异常,则可参考如下Java代码调用解压命令解压
public void executeNewFlow() { Runtime run = Runtime.getRuntime(); File wd = new File("/bin"); System.out.println(wd); Process proc = null; try { proc = run.exec("/bin/bash", null, wd); } catch (IOException e) { e.printStackTrace(); } if (proc != null) { BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true); out.println("cd /home/test"); out.println("rar x test.rar"); out.println("exit");//这个命令必须执行,否则in流不结束。 try { String line; while ((line = in.readLine()) != null) { System.out.println(line); } proc.waitFor(); in.close(); out.close(); proc.destroy(); } catch (Exception e) { e.printStackTrace(); } } }
rar -y x -p123456 test.rar 解压带密码的rar文件
-y表示安静模式
x表示解压
-p后面表示这个压缩文件的密码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)