当你把一个java写的程序打包为jar的时候,请务必注意你读取资源文件的方式。
一般我们为了方便读取资源文件,在一个类中定义一个基本路径
base_path=Constants.class.getResource("/").getPath();
变量,在其他的类中想读取资源文件的时候,直接用这个变量加上资源的相对路径,这样当然在ide里面运行是没有任何问题的,但是一旦打包成jar后就无法运行,原因是无法读取资源文件,因为jar的url的规则是这样的:file:/C:/fat.jar!images/img.jpg是这样的,这个和File的路径规则不一样,所以我们new 一个File当然不会成功了哦,在网上找了许久也没找到什么好点的办法,唯一知道的就是
ClassName.class .getResourceAsStream("/images/trayIcon.jpg")这样具体到某一个文件上去,得到一个流。那么这样在jar中是没任何问题的。
这个问题困扰了我很久,以前也遇到过,昨晚又遇到了,终于找到原因所在了,杯具++啊
大牛们看到了,千万别笑话我,如果有更好的办法请告知小弟,万分感谢!
发觉java真的不适合开发桌面应用程序啊。
分享到:
相关推荐
Java读取Jar中资源文件是一种常见的操作,通过使用java.util.jar.JarFile和java.util.jar.JarEntry可以实现读取jar文件中的资源文件。这种机制可以实现资源的动态加载和更新,提高了系统的灵活性和可维护性。
在`AppProperties`类中,我们可以定义属性的字段,并通过`@ConfigurationProperties`注解指定前缀,Spring Boot会自动从配置文件中匹配并注入值。 为了使Spring Boot能够找到JAR内的配置文件,可以在`src/main/...
Java Archive (JAR) 文件是Java平台上的一个重要组成部分,它主要用于打包Java类、资源文件以及元数据。JAR文件的出现使得Java开发者能够将多个类文件组合成一个单一的可执行文件,方便分发和执行。在Java开发过程中...
在Java编程中,有时我们需要从已经打包的JAR文件中读取特定的资源文件,例如配置文件、图片或库。本篇文章将详细讲解如何在Java中实现从JAR包中读取指定文件的方法。 首先,Java提供了`java.util.jar`包,其中包含...
3. **读取类路径中的资源文件** 如果你的文件是在运行时类路径中,你可以使用`ClassLoader`来获取输入流,这样就不需要直接处理`JarFile`了。例如: ```java InputStream in = getClass().getResourceAsStream("/...
它们都可以用来获取JAR或WAR内的资源。 3. **类路径和归档结构**: 了解Java类路径(ClassPath)的概念,以及JAR和WAR的内部结构对于找到正确的资源路径至关重要。在WAR包中,通常静态资源位于`WEB-INF/classes`或`...
在Java编程中,有时我们需要在运行时从JAR(Java Archive)包中读取文件,例如类、配置或资源文件。这个任务对于那些希望在不将文件解压到硬盘上的情况下使用它们的开发者来说是非常重要的。本文将详细介绍如何在...
作为Android程序开发,我们自己在实际项目的开发过程中,经常会遇到我们打的Jar包需要动态的读取主项目工程中的资源文件,那么有没有一种好的方式,能够让Jar包非常方便的读取与展示主工程中的资源文件呢?...
- Maven和Gradle等构建工具允许你配置如何打包和处理JAR文件中的资源,比如在构建过程中自动处理资源文件的复制和替换。 通过这些方法,开发者可以方便地访问和操作JAR文件内部的文件内容,无论是简单的文本文件...
### 读取jar文件中的资源知识点 #### 一、引言 在开发过程中,经常会遇到需要从jar包中读取资源文件(如图片、音频等)的情况。这涉及到如何定位和访问这些文件的问题。本文将深入探讨如何在Java环境中有效地处理这...
在开发SpringBoot微服务时,开发人员小明遇到了一个问题,即在本地开发环境中能够正常读取资源文件,如word文档或模板,但当项目被打包成jar并部署到服务器后,程序无法找到这些文件,导致运行时异常。这个问题在...
本资源包聚焦于这个主题,包含了一系列jar包以及两个.java示例文件,帮助我们深入理解如何在Java环境中读取和解析Excel内容。 首先,让我们了解一下核心的jar包。这些jar包通常包含了用于操作Excel文件的API,例如...
本文将详细讲解如何实现这一目标,主要关注于读取和修改JAR文件中的类(如DbParamDlg.java)。 首先,让我们了解JAR文件的结构。JAR(Java Archive)是Java平台特有的归档格式,它用于集合多个类文件和其他资源,...
然而,加载这些资源文件可能会遇到一些问题,特别是当资源文件位于类路径(classpath)的深层目录结构中时。本篇文章将详细探讨如何在Java中正确地从JAR包中加载资源文件,并提供相应的源码示例。 首先,理解Java类...
在Java中,JAR(Java Archive)文件是一种归档格式,用于将多个类文件和其他资源组合到一个单一的文件中,方便分发和执行。然而,一旦JAR文件被创建,通常情况下是无法直接修改其内部内容的,因为它们是以只读方式...
本示例将详细讲解如何从JAR文件中读取图片和文本,并将其保存或显示出来。以下是对给定标题和描述的详细解读。 首先,`GetJarFile.java`是实现这个功能的主要类。在Java中,我们通常使用`java.util.jar.JarFile`类...
jar(Java Archive)是Java平台的一种标准归档格式,用于集合多个类文件以及相关的元数据到一个单一的文件中,便于分发和运行。class文件则是Java源代码经过编译后生成的字节码文件,包含了程序的可执行代码。本文将...
2. 运行JAR:Java提供`java -jar`命令来运行JAR文件,manifest文件中的Main-Class属性指定了程序的入口点。 3. 分发与更新:JAR文件常用于分发Java应用程序或库,HTTP下载是一个常见的方式。为了确保更新,可以使用...
然而,Android原生不支持直接从JAR中读取资源文件,这给开发者带来了挑战。本文将详细探讨如何在Android项目中处理包含资源文件的JAR。 首先,理解Android资源加载机制。在Android应用中,我们通常通过`R`类来访问...
然而,在打包过程中,可能会遇到一个问题:原本在开发环境中能够正常访问的资源文件(如图片、配置文件等),在打包后的JAR文件中却无法正确读取。这一问题主要源于资源文件路径的指定方式不同。 #### 问题分析 在...