`
zlping
  • 浏览: 63839 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何在打包后的 jar 中读取本包中的文件

    博客分类:
  • java
阅读更多

刚用SWING做了一个小程序,准备打包发布。打包时出现问题了。

 

因为程序启动时要读取初始化文化,我想把初始化文件打包到JAR中一起发布,用URL url = class.getResource(path)读取文件,然后FileReader fr = new FileReader(url.getPath())。在不打包这前运行没问题,可打成JAR后就读不了初始化文了。

 

经过一天的调试发现打成JAR后,用class.getResource(path)取得的URL是***/***.jar!/***,问题就出在这“.jar!”,这是个文件而不是目录,所以在生成FileReader后会出错,提示“文件名,目录名或卷标错误”。这可怎么办?

 

可又一想我程序里有一个为窗口设制图片的语句是

URL url = this.getClass().getResource("sun.gif");

setIconImage(this.getToolkit().createImage(url));

 

这样能读出JAR包中的图片的,没问题。。。百思不得其解!!!!!

 

 

经过GOOGLE和一步步调试,终于发现,可以用InputStream in = this.getClass().getResource(path).openStream() 以流的方式读出JAR中的文件,太高兴了,只要把InputStream再转成BufferedReader,就可以操作文件了。

 

PS:用class.getResource(path) 取得的URL不能只接FileReader(url.getPath())生成文件,必须以流的方式打开

分享到:
评论

相关推荐

    Java实现从jar包中读取指定文件的方法

    本篇文章将详细讲解如何在Java中实现从JAR包中读取指定文件的方法。 首先,Java提供了`java.util.jar`包,其中包含处理JAR文件所需的类。`JarFile`类是核心类,它允许我们打开并操作JAR文件。在给定的代码示例中,`...

    Eclipse打包成JAR包读取外部JAR包和外部配置文件

    然而,当项目完成后,我们需要将其打包成可执行的JAR文件,以便在其他环境中运行。在某些情况下,我们的项目可能依赖于外部的JAR库或者需要读取外部的配置文件,这在打包时需要特别处理。本文将详细介绍如何在...

    删除jar包中的指定文件

    标题“删除jar包中的指定文件”涉及到的是Java开发中对已打包JAR文件进行操作的知识点。在Java中,JAR(Java Archive)文件是一种归档格式,用于将多个类文件和其他资源组合到一个单一的文件中,方便分发和执行。...

    spring读取jar中的配置文件

    当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...

    解决SpringBoot jar包中的文件读取问题实现

    在SpringBoot应用中,文件读取是一个常见的需求,但在打包成jar文件并部署后,由于文件不再位于文件系统中,而是被包含在jar包内部,所以传统的文件读取方式会失效。本文将深入探讨如何解决SpringBoot jar包中的文件...

    读取war包或jar包内的文件

    标题"读取war包或jar包内的文件"涉及到的知识点主要是如何在程序中动态地获取并读取这些归档文件中的内容,这对于理解和处理Java应用的部署和运行至关重要。这篇博客(虽然链接未提供具体内容)可能探讨了以下关键点...

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    解决java打包之后无法加载静态资源的问题SWTResourceManager.java源码

    利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...

    jar 包 内文件读取 文件内容

    在Java编程语言中,JAR(Java Archive)文件是一种打包格式,用于收集多个类文件、相关的元数据和其他资源(如图像、声音或文本文件),以便一起分发和部署。JAR文件是基于ZIP格式的,因此可以使用类似的机制来读取...

    读取jar文件

    在开发过程中,经常会遇到需要从jar包中读取资源文件(如图片、音频等)的情况。这涉及到如何定位和访问这些文件的问题。本文将深入探讨如何在Java环境中有效地处理这类需求。 #### 二、基本概念与原理 在Java中,...

    jar包中类的加载及jar中资源的使用

    在Java编程环境中,`jar`(Java Archive)文件是一种打包工具,它将多个类文件、资源文件以及其他元数据集合在一起,便于分发和执行。本文将深入探讨`jar`包中类的加载机制以及如何在Java程序中使用`jar`中的资源。 ...

    解决SpringBoot打成jar运行后无法读取resources里的文件问题

    在使用SpringBoot进行开发时,我们经常会遇到在开发环境中能够正常读取resources目录下的文件,但是一旦将应用打包成jar文件并部署到服务器上运行时,就无法访问到这些资源文件的问题。这是因为SpringBoot的打包机制...

    Jar包中如何正确地加载资源文件博文中用到的测试项目源码

    在Java开发中,将资源文件打包到JAR(Java Archive)包中是常见的做法,这样可以方便地分发和执行程序。然而,加载这些资源文件可能会遇到一些问题,特别是当资源文件位于类路径(classpath)的深层目录结构中时。本...

    jar包里读取图片.rar ,,自己写的例子

    本示例主要探讨如何从已打包的JAR文件中读取图片,这对于桌面应用或者Web应用来说是非常常见的需求。下面,我们将详细解释这个过程,并给出具体的操作步骤。 首先,我们需要理解JAR文件的结构。JAR文件本质上是一个...

    android中apk包中的xml文件解密

    本篇文章将详细介绍如何在Android中对APK包中的XML文件进行解密,以及这一过程涉及的相关技术。 首先,我们需要理解APK的结构。APK本质上是一个ZIP文件,包含以下关键部分: 1. **AndroidManifest.xml**:这是应用...

    Linux上执行带main方法的java文件

    然而,在Linux服务器部署场景中,则需要采取其他方式,即先将Java项目打包成JAR文件,再利用命令行来启动执行。 #### 打包Java项目为JAR文件 在Linux服务器上执行Java项目时,通常的做法是先将项目打包成JAR文件。...

    dom4j从jar包中读取xml文件的方法

    首先,我们要明确一点,当一个Java应用被打包成JAR文件后,文件系统中的路径不再适用。JAR文件本质上是一个压缩文件,其中包含了类文件和其他资源,如XML文件。因此,直接使用`File`对象来尝试打开JAR内部的资源是行...

    jar包解析工具

    在Java开发环境中,`jar`(Java Archive)文件是一种打包格式,用于收集多个类文件、相关的元数据和其他资源(如图像文件),以便分发和运行Java应用程序或库。`jar`包解析工具对于开发者来说至关重要,尤其是在处理...

    按键精灵打包分析

    在本篇文章中,我们将深入探讨“按键精灵打包分析”的核心内容,并对相关的命令行参数、文件路径以及涉及的技术细节进行全面解析。 ### 一、按键精灵简介 按键精灵是一款功能强大的自动化工具,通过录制或编写脚本...

Global site tag (gtag.js) - Google Analytics