转载:
http://hi.baidu.com/triceratops/blog
JAR文件本质上是一种ZIP格式的文件,有些时候java程序需要访问JAR包中的某资源文件(例如properties文件),但此时是不能使用File类来操作的,这是因为File类是不能访问压缩包内的文件路径的。一种办法是利用java.util.zip 或者java.util.jar 包中的API操作JAR包,但是代码写起来比较麻烦;还有一种更简单的方法是利用Class类的getResourceAsStream(String name)方法来访问jar包内的资源。一个简单的示例如下:
package cn.edu.ustb.math;
import java.io.*;
public class AccessJar{
public void backupResourceFile(String resourceName) throws IOException{
//load resource as bytes
InputStream is = getClass().getResourceAsStream(resourceName);
//The InputStream instance will be different for folder path and jar file path
System.out.println(is.getClass().getName());
//backup resource
OutputStream fos = new FileOutputStream((resourceName.startsWith("/")?
resourceName.substring(1):resourceName)+".bak");
byte[] buf = new byte[1024];
int i;
while((i=is.read(buf))!=-1){
fos.write(buf, 0, i);
}
fos.close();
}
public static void main(String[] args){
try{
new AccessJar().backupResourceFile("/fr-019-v110.exe");
/**
If the file name begins with a '/' ('\u002f'), then the absolute name of
the resource is the portion of the name following the '/'.
Otherwise, the absolute name is of the following form:
modified_package_name/name
Where the modified_package_name is the package name of this object
with '/' substituted for '.' ('\u002e').
*/
System.out.println("Done!");
}
catch(IOException e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
标题“删除jar包中的指定文件”涉及到的是Java开发中对已打包JAR文件进行操作的知识点。在Java中,JAR(Java Archive)文件是一种归档格式,用于将多个类文件和其他资源组合到一个单一的文件中,方便分发和执行。...
在Java编程中,有时我们需要从已经打包的JAR文件中读取特定的资源文件,例如配置文件、图片或库。本篇文章将详细讲解如何在Java中实现从JAR包中读取指定文件的方法。 首先,Java提供了`java.util.jar`包,其中包含...
在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...
当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,以便管理依赖注入和其它服务。在Spring中,我们通常使用`classpath:`或`classpath*:`前缀来指定资源的位置。这两个前缀在处理多个类路径位置时有...
- `B-exec.jar`:这个文件与之前编译的JAR文件结构相同,包含了所有依赖和资源文件,可以单独运行。 - `B.jar`:这个文件则只包含B项目本身的文件,没有其他依赖项,结构类似于非Spring Boot项目的JAR文件。 3. *...
总之,解决SpringBoot jar包中的文件读取问题的关键在于,不要试图将jar内的资源视为文件系统中的文件,而应使用输入流和类加载器来访问这些资源。这样,即使在jar环境下,也能正确地读取和使用资源文件,确保应用的...
本篇文章将详细探讨如何在Java中正确地从JAR包中加载资源文件,并提供相应的源码示例。 首先,理解Java类路径(classpath)是关键。类路径是指Java虚拟机(JVM)查找.class文件和其他资源文件的路径。当你运行一个...
JAR(Java ARchive)文件是Java平台上的一个标准归档格式,它包含了一个或多个类文件以及其他资源文件。这些文件被组织成与Java包(package)相匹配的目录结构。当我们运行一个JAR文件时,Java虚拟机(JVM)会加载...
三、`jar`包中资源的使用 1. `getResourceAsStream()`:通过`ClassLoader`的`getResourceAsStream()`方法,可以获取`jar`包内的资源文件的输入流,例如`getClass().getResourceAsStream("/config.properties")`。 ...
Jar 文件可以包含多个 Java 类文件、资源文件和配置文件等,通过 Jar 文件可以方便地将 Java 项目打包成一个文件,易于分发和部署。 二、将 Java 项目打包成可执行的 Jar 文件 将 Java 项目打包成可执行的 Jar ...
这里的`classpath:`前缀表示从类路径中查找资源,如果应用被打包成JAR,这个配置文件会被包含在JAR的根目录下`/config/`路径中。 然而,当配置文件位于JAR的嵌套目录,例如`META-INF/config/application.properties...
Java读取Jar中资源文件是一种常见的操作,在开发Java项目时,经常需要读取jar包中的资源文件。下面将详细介绍Java读取Jar中资源文件的实现代码和应用。 一、Java读取Jar中资源文件的必要性 在Java项目中,经常需要...
在JAR包中,资源通常与对应的类同级或者在特定的目录下。 4. **相对路径与绝对路径**: 在指定资源路径时,可以使用相对路径(相对于当前类或指定类)或绝对路径(从根目录开始)。相对路径更灵活,但可能引起找不到...
2. **读取JAR内的资源文件**: - `JarInputStream`:如果你知道要读取的文件名,可以通过`java.util.zip.JarInputStream`类来实现。这个类允许你逐个读取JAR文件中的条目,而无需一次性加载所有内容到内存。 3. **...
提供的jar包中包含了源码,这意味着我们可以学习和理解实现文件分割和合并的具体算法和逻辑。通过阅读源码,开发者可以了解到如何控制文件的读写操作,如何管理多个文件的顺序,以及如何处理可能出现的错误和异常。...
- **检查Maven或Gradle配置**:确认构建工具配置是否正确,确保资源文件被包含在jar包中。在Maven中,检查`pom.xml`中的`<build>`部分,确保`<resource>`标签包含了资源文件夹。 5. **测试和调试** 使用`jar tvf ...
jackson-mapper-asl-1.9.13.jar 和jackson-databind-2.7.0.jar和jackson-core-asl-1.9.13.jar和jackson-core-2.7.0-rc1.jar和jackson-annotations-2.7.0-rc1.jar这几个jar包
然而,当遇到需要调试jar文件中的代码时,由于jar文件通常不包含源代码,直接使用默认的调试配置可能会遇到一些挑战。本篇将详细介绍如何在Eclipse中设置Jadclipse插件,以便于调试jar文件中的类。 首先,Jadclipse...
当我们需要在众多`jar`包中寻找特定的`.class`文件时,这通常是一项繁琐的任务。为了简化这一过程,可以使用名为`JarSearchFile`的工具或方法来高效地定位所需文件。 `JarSearchFile`可能是一个命令行工具或者库,...
* 提高安全性:JAR 文件可以对 Java 类和资源文件进行加密和签名,从而提高应用程序的安全性。 * 减少文件数量:JAR 文件可以将多个 Java 类和资源文件压缩成一个文件,从而减少文件数量和大小。 如何将 Java 文件...