如何解压jar
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章给大家介绍如何解压jar,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。场景页面上传jar包后台解压jar包页面展示所有package选择一个package页面显示clas
千家信息网最后更新 2025年12月04日如何解压jar
这篇文章给大家介绍如何解压jar,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
场景
页面上传jar包
后台解压jar包
页面展示所有package
选择一个package
页面显示class和子package
选择class,进入class解析页面
选择package,显示class和子package
解压jar
package com.wuxiongwei.java.jar2;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.nio.ByteBuffer;import java.nio.channels.Channels;import java.nio.channels.FileChannel;import java.nio.channels.ReadableByteChannel;import java.util.Enumeration;import java.util.jar.JarEntry;import java.util.jar.JarFile;/** * 非常好的工具类
* 解压jar. * @author * @version 1.0.0 */public class JarDecompression { protected static Log log = LogFactory.getLog(JarDecompression.class); @SuppressWarnings("resource") public static void uncompress(File jarFile, File tarDir) throws IOException { JarFile jfInst = new JarFile(jarFile); Enumeration enumEntry = jfInst.entries(); while (enumEntry.hasMoreElements()) { JarEntry jarEntry = (JarEntry) enumEntry.nextElement(); File tarFile = new File(tarDir, jarEntry.getName()); if(jarEntry.getName().contains("META-INF")){ File miFile = new File(tarDir, "META-INF"); if(!miFile.exists()){ miFile.mkdirs(); } } makeFile(jarEntry, tarFile); if (jarEntry.isDirectory()) { continue; } FileChannel fileChannel = new FileOutputStream(tarFile).getChannel(); InputStream ins = jfInst.getInputStream(jarEntry); transferStream(ins, fileChannel); } } /** * 流交换操作 * @param ins 输入流 * @param channel 输出流 */ private static void transferStream(InputStream ins, FileChannel channel) { ByteBuffer byteBuffer = ByteBuffer.allocate(1024 * 10); ReadableByteChannel rbcInst = Channels.newChannel(ins); try { while (-1 != (rbcInst.read(byteBuffer))) { byteBuffer.flip(); channel.write(byteBuffer); byteBuffer.clear(); } } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (null != rbcInst) { try { rbcInst.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != channel) { try { channel.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 打印jar文件内容信息 * @param file jar文件 */ public static void printJarEntry(File file) { JarFile jfInst = null;; try { jfInst = new JarFile(file); } catch (IOException e) { e.printStackTrace(); } Enumeration enumEntry = jfInst.entries(); while (enumEntry.hasMoreElements()) { log.info((enumEntry.nextElement())); } } /** * 创建文件 * @param jarEntry jar实体 * @param fileInst 文件实体 * @throws IOException 抛出异常 */ public static void makeFile(JarEntry jarEntry, File fileInst) { if (!fileInst.exists()) { if (jarEntry.isDirectory()) { fileInst.mkdirs(); } else { try { fileInst.createNewFile(); } catch (IOException e) { log.error("创建文件失败>>>".concat(fileInst.getPath())); } } } } public static void main(String[] args) { File jarFile = new File("/Users/mac/Documents/other/bw2/bopsdk-openapi-1.0.2-Release.jar"); File targetDir = new File("/Users/mac/Documents/other/bw2/test/"); try { JarDecompression.uncompress(jarFile, targetDir); } catch (IOException e) { e.printStackTrace(); } }}
关于如何解压jar就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文件
页面
内容
选择
实体
更多
帮助
不错
信息
兴趣
后台
场景
小伙
小伙伴
工具
文章
知识
篇文章
参考
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发总经理工资
网络技术与秘书工作的关系
广东智能语音服务器云主机
显示服务器缓存过多
服务器系统2012支持uefi
安卓获取数据库的图片路径
软件开发的原材料有哪些
软件开发工作室如何发展
拱墅区物流软件开发
《网络安全法》三十七条
ppdrr网络安全模型
下家列代表网络技术的是
药品存储信息管理系统数据库
学软件开发应该什么基础知识
网络安全2.0标准包含
汕尾网络安全宣传周直播
数据库开发工程师薪资
网络安全策略白名单
怎么从数据库筛选数据
数据库系统比数据库大
数据库如何编辑
重庆项目软件开发费
杭州重拙网络技术有限公司
网络安全专家讲师
腾讯的互联网科技
浏阳软件开发技工学校
普华永道软件开发
获得境外软件开发涉税问题
数据库运用系统
u8数据库导入项目分录