如何解压jar
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍如何解压jar,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。场景页面上传jar包后台解压jar包页面展示所有package选择一个package页面显示clas
千家信息网最后更新 2026年11月03日如何解压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安全错误
数据库的锁怎样保障安全
小米移动互联网科技园
中关村互联网科技集团
互联网科技会
互联网的科技创新
九亚互联网科技
奇士达互联网科技
上海卓越科技 互联网
太原新华互联网科技学校怎么样
广州慧亚互联网科技怎么样
湖南诚度互联网科技有限公司
昊天互联网科技有限公司
深圳市优智互联网科技有限公司
2021互联网科技公司排名
从那以后互联网科技有限公司
图游互联网科技
中国新注册互联网科技
科技信息时代互联网发展
玉溪新华互联网科技怎么选
山东蛋芒互联网科技有限公司
数字科技和互联网金融哪个好
互联网科技图片
为想互联网科技怎么样
互联网前沿科技
互联网科技宣传片
互联网 科技服务平台
青岛中康互联网医疗科技有限公司
互联网新科技动漫ppt素材
互联网金融科技元年
张召忠谈中国互联网科技
互联网科技和医药行业