/** * 解压缩JAR包 * @param fileName 文件名 * @param outputPath 解压输出路径 * @throws IOException IO异常 */ private void decompress(String fileName, String outputPath) throws IOException{ if (!outputPath.endsWith(File.separator)) { outputPath += File.separator; } JarFile jf = new JarFile(fileName); for (Enumeration e = jf.entries(); e.hasMoreElements();) { JarEntry je = (JarEntry) e.nextElement(); String outFileName = outputPath + je.getName(); File f = new File(outFileName); System.out.println(f.getAbsolutePath()); //创建该路径的目录和所有父目录 makeSupDir(outFileName); //如果是目录,则直接进入下一个循环 if(f.isDirectory()) { continue; } InputStream in = null; OutputStream out = null; try { in = jf.getInputStream(je); out = new BufferedOutputStream(new FileOutputStream(f)); byte[] buffer = new byte[2048]; int nBytes = 0; while ((nBytes = in.read(buffer)) > 0) { out.write(buffer, 0, nBytes); } }catch (IOException ioe) { throw ioe; } finally { try { if (null != out) { out.flush(); out.close(); } } catch (IOException ioe) { throw ioe; } finally { if (null != in) { in.close(); } } } } } /** * 循环创建父目录 * @param outFileName */ private void makeSupDir(String outFileName) { //匹配分隔符 Pattern p = Pattern.compile("[/\\" + File.separator + "]"); Matcher m = p.matcher(outFileName); //每找到一个匹配的分隔符,则创建一个该分隔符以前的目录 while (m.find()) { int index = m.start(); String subDir = outFileName.substring(0, index); File subDirFile = new File(subDir); if (!subDirFile.exists()) subDirFile.mkdir(); } }
相关推荐
Apache的java压缩(解压)文件jar包; jar包的名字有些别扭叫ant.jar
- `x`:解压Jar文件。 - `u`:更新已有Jar文件,添加新的文件或目录。 为了使Java程序能够直接运行,你需要在Manifest文件中指定主类。可以使用以下命令创建包含主类的Manifest文件: ```bash echo "Main-Class: ...
总结一下,Java解压RAR文件涉及使用第三方库如`java-unrar`,通过创建RarFile对象,遍历并解压文件条目来完成。同时,`ant.jar`在构建流程中可用于自动化解压缩任务。`DeCompressUtil.java`中的示例代码提供了解压的...
除了上述方法外,还可以借助于第三方工具如7-Zip等来解压JAR文件。这种方法虽然不能直接运行JAR文件中的程序,但对于查看其内部结构非常有帮助。 #### 二、JAR文件与Java环境的关联 为了使JAR文件能够像其他可...
为了在Java中实现7z文件的解压功能,我们通常会依赖第三方库,这里提到的是"sevenzipjbinding"库。这个库为Java提供了与7-Zip交互的API,使我们能够在Java代码中调用7-Zip的解压缩功能。 首先,我们需要导入必要的...
在这个方法中,我们可以实现读取外部jar文件,解压其内容,并找到对应的类字节码。以下是一个基本的类加载器示例: ```java public class CustomClassLoader extends ClassLoader { private File jarFile; ...
总的来说,ant-1.6.5.jar和junrar-0.7.jar为Java开发者提供了强大的文件解压缩能力,不仅支持常见的ZIP格式,还支持RAR这一特殊格式,使得Java应用程序能够更灵活地处理压缩文件。在开发需要处理压缩文件的应用时,...
- JAR文件是一个归档文件格式,用于集合多个Java类文件、资源文件和元数据,类似于其他平台上的ZIP文件。 - 在Java Web应用中,JAR文件可能包含Servlet类、过滤器、监听器等组件。 3. **部署Java Web应用到Tomcat...
总之,"java解压jar类查找工具"是一款高效实用的开发辅助工具,利用多线程技术在Linux和Windows环境下快速定位jar和zip中的class文件,极大地提升了开发人员的工作效率。通过理解它的核心技术,如多线程、文件系统...
java解压zlib和压缩zlib的jar
查看Java JAR文件对于理解程序结构、调试或逆向工程非常重要。在给定的标题和描述中,提到的是一个专门用于查看JAR文件的工具——"查看java jar 文件的查看器",并且特别指出这是一个绿色版本,意味着它不需要安装...
Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。 RAR 密码
【标题】"解压cab文件Jar包mscab.jar"涉及的主要知识点是关于 CAB(Microsoft Cabinet)文件格式和Java的jar包处理。CAB文件是一种由微软开发的压缩格式,主要用于软件安装程序,它包含了多个文件和相关的元数据。而...
java 解压 rar 文件,压缩包为测试工程,包含 java-unrar-0.3.jar
标题提到的"用java解压*.zip*.rar*.gz*.bz*.bz2等压缩文件含jar"涉及到Java对多种压缩格式的支持,包括ZIP、RAR、GZ、BZ和BZ2。这些文件格式在软件开发、数据传输和存储中广泛使用。下面我们将详细讨论如何使用Java...
这个“所有java的Jar包”压缩文件可能包含了众多Java开发中常用的库、框架或者工具的JAR文件。由于文件大小限制,这里仅提供了部分,如有需要可进一步联系获取更多。 JAR文件的核心作用: 1. **代码封装**:将多个...
首先,`javatar-2.5.jar`是一个专门用于处理tar文件的Java库,它提供了解压和压缩tar文件的API,方便开发者在Java项目中进行文件的打包和解包操作。这个库特别强调了解决中文文件名乱码的问题,确保在处理包含非...
JAR文件是Java平台的标准归档格式,用于集合多个Java类文件和其他资源。它通常用于分发可执行的Java应用程序或库。JAR文件可以包含一个名为`META-INF/MANIFEST.MF`的清单文件,其中包含了关于JAR的信息,如主类、...
在Java编程环境中,批量解压带密码的RAR或ZIP文件是一项常见的任务,特别是在软件开发过程中,可能需要处理包含源码和库文件的压缩包。本文将深入探讨如何使用Java实现这个功能,以及涉及的相关知识点。 首先,解压...
Java压缩及解压tar、tar.z格式文件, 需要apache的包ant-1.7.1.jar 这个自己去搜索下下载