打成jar包后无法读取到jar包内的properties文件
发现在eclipse里一切正常,但打成jar包后就无法读取到properties文件了。
之前的程序是这样获取配置文件的:
Thread.currentThread().getContextClassLoader().getResource("").getPath() +filename+".properties")
来获取properties文件,但发现一运行就报错.后来将代码改成:
this.getClass().getClassLoader().getResourceAsStream(filename+".properties")
一切正常~
关于java 的 classloader 还是有点概念不清,需要补补~~
一般在项目中使用properties配置文件的时候都将相关的properties文件放在src目录下,在将该app打包生成jar后,相应的properties配置文件生成在jar包中,这样的话要修改配置文件又要重新打jar包,那是相当的麻烦。。
既然这么麻烦,你肯定想将配置文件放在其他的目录下,生成的jar包内不包含相应的配置文件,修改配置文件无需重新打包,没错,下面就是一种解决方案了。
读取jar包内配置文件:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties");
读取jar包外配置文件:
String filePath = System.getProperty("user.dir") + "/conf/configfilename.properties"; InputStream in = new BufferedInputStream(new FileInputStream(filePath));
原地址:http://hi.baidu.com/qu3999352/item/04361a620a28fb2b69105b92
分享到:
相关推荐
本文将详细介绍如何在Eclipse中将项目打包成JAR文件,并确保能正确引用外部JAR包和读取外部配置文件。 首先,我们来看如何打包项目为JAR。在Eclipse中,选择`Export` -> `Java` -> `Runnable JAR file`。在弹出的...
当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...
读取jar包外的log4j.properties文件,可以通过以下步骤实现: 1. **设置系统属性**:在Java程序启动时,可以通过`-D`选项指定log4j配置文件的位置,例如: ``` java -Dlog4j.configuration=file:///path/to/log4j...
本主题将深入探讨如何使用特定的jar包来读取这些properties配置文件,以及涉及到的相关技术和库。 标题提及的"读取properties配置文件所用jar"主要指的是Apache Commons Configuration库,这是一个强大的Java库,它...
下面我们将详细探讨如何在Eclipse中打包JAR包,并读取外部JAR包和外部配置文件。 首先,我们需要了解JAR文件的结构。JAR文件是Java类文件和相关资源的容器,它们被组织成目录结构,类似于Unix或Windows的文件系统。...
在使用SpringBoot进行开发时,我们...通过以上知识点的介绍,我们可以解决SpringBoot应用打成jar包后无法读取resources目录下文件的问题,并且在处理数据时能够更加高效。希望这些内容能对大家在实际开发中有所帮助。
在Java编程中,读取properties文件是常见的任务,主要用于配置应用程序的参数或环境变量。properties文件通常以键值对的形式存储数据,便于管理和修改。本文将详细介绍三种在Java中读取properties文件的方法。 1. ...
然而,一旦将应用程序打包成JAR,内部的资源文件(如Properties)就无法直接修改,因为它们被嵌入到JAR的结构中。为了解决这个问题,我们可以将Properties文件放在JAR外部,然后通过代码来读取和更新这些文件。 在...
最后,将生成的 JAR 文件和配置文件、LIB 包里的引用文件放到同一文件夹内,即可执行。 首先,需要将依赖的 lib 包和配置文件放在 src 工程目录下,而不是 src 内。这是因为,在生成 JAR 文件时,需要将这些文件...
在转换过程中,软件首先会读取JAR文件的MANIFEST.MF,这是JAR文件的元数据,包含了关于包的信息,如主类、版本等。然后,它会逐个提取JAR内的每个文件,特别是`.class`文件,这些是Java编译后的字节码。同时,其他非...
NULL 博文链接:https://edison-cool911.iteye.com/blog/889726
这种方法可以加载位于类路径下或jar包内的资源。 **代码示例:** ```java import java.io.InputStream; import java.util.Properties; public class ClassLoaderResourceExample { public static void main...
"数据库jar包及配置文件"这个主题主要涉及两个核心方面:一是数据库驱动的JAR包,二是应用程序的数据库配置文件。这两个元素是任何Java应用与数据库交互的基础。 首先,我们来详细讨论数据库驱动的JAR包。在Java中...
SpringBoot读取war包jar包和Resource资源 SpringBoot 中读取 war 包 jar 包和 Resource 资源是开发过程中的常见问题。下面是相关知识点的总结: 1. ClassLoader 获取资源文件 在 SpringBoot 项目中,使用 ...
这里的"solr增量更新jar包及配置文件"指的是用于Solr实现数据定时增量更新所需的组件和配置。 一、scheduler.jar `scheduler.jar` 文件很可能是包含了一个任务调度器的Java应用程序,用于安排Solr的定期更新任务。...
7. **容器和依赖注入支持**:虽然不在压缩包内,但如果你在Spring或EJB等容器中使用Hibernate,还需要相应的jar包,如`spring-context.jar`或`ejb3-persistence.jar`。 8. **查询语言和工具**:`hibernate-tools....
4. 编译与打包:在构建项目时,确保所有.properties文件被正确地包含在最终的JAR或WAR文件中。 在实际开发过程中,Eclipse的国际化插件还可以帮助进行以下操作: - 比较不同语言版本的.properties文件,查看翻译的...
在实际开发中,将这些jar包添加到项目的类路径(classpath)中,就可以通过Java代码创建Zookeeper客户端,执行诸如创建节点、读取数据、设置监视点等操作。例如: ```java ZooKeeper zookeeper = new ZooKeeper(...
-- 读取数据库连接信息,连接信息在jdbc.properties配置文件中 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 定义数据源对象 --> ${driverClass}"/> ${jdbcUrl}"/> ${...