如何读取jar包外的properties文件和log4j.properties

http://jrails.iteye.com/blog/1705464

***************************************‘

一般在项目中使用properties配置文件的时候都将相关的properties文件放在src目录下,在将该app打包生成jar后,相应的properties配置文件生...

一般在项目中使用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)); 

另外,如果app中使用到log4j.properties文件,默认的存放路径是src/log4j.properties,同上面一样,我想把log4j.properties放在其他目录中,这样一来,在修改log4j配置文件的时候无需重新打jar包。

在main函数第一行添加如下代码:

        PropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties"); 
时间: 2024-10-12 23:26:53

如何读取jar包外的properties文件和log4j.properties的相关文章

Spring boot 如何读取jar包外面的properties文件

先来张target跟目录的文件结构 conf文件夹中存放的是properties文件, lib文件夹中存放的是各种jar文件, start.bat是windows命令行的启动文件. 来张properties文件的内容 1. 创建配置文件相关的配置类,每个properties文件对应一个配置类 这里使用了@ConfigurationProperties, prefix是指properties文件中的前缀, 比如 asdf.name, 前缀就是asdf,  实体类中的name对应着asdf后面的na

scala读取jar包外配置文件的方式

在scala的开发过程中,经常会修改程序的参数,将这些参数放到配置文件中避免了重复编译,然而打包的过程,如果不做配置文件外置,将无法修改配置内容,还是需要重新打包 这里给出读取配置文件的三种方式 方式一: 这是最常见的读取配置文件方式 val postgprop = new Properties()val ipstream: InputStream = this.getClass().getResourceAsStream("/config.properties")postgprop.

拒绝FileNotFoundException!总结了这几个读取jar包外配置文件的知识点

前言 相信很多人遇到过这个问题:本地运行的好好的程序,怎么部署到线上就报找不到配置呢? 初识getResource 案例一 FieldMapConfig.class.getResource("p1.properties").getPath(); ``` - 这段代码在本地运行没有任何问题,一放到线上就报空指针. ###### 案例二 ![file](https://graph.baidu.com/resource/22243f231967f8c552ea801577605576.png

springboot jar启动 读取jar包中相对路径文件报错

jar包启动后读取相对路径文件报异常: Caused by: java.io.FileNotFoundException: class path resource [***.***] cannot be resolved to absolute .***.jar/BOOT-INF/classes!/***.** 采用流的方式读取即可解决 // /template/template.html是resource下面的文件 String template=readfile("/template/tem

02_MyBatis项目结构,所需jar包,ehcache.xml配置,log4j.properties,sqlMapConfig.xml配置,SqlMapGenerator.xml配置

 项目结构(所需jar包,配置文件) sqlMapConfig.xml的配置内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> &l

读取Jar包中的资源问题探究

最近在写一个可执行jar的程序,程序中包含了2个资源包,一个是images,一个是files.问题来了,在Eclipse里开发的时候,当用File类来获取files下面的文件时,没有任何问题.但是当程序导出为Runnable Jar时,运行程序时抛出异常,File not found.我们来一探究竟. 首先是我的工程目录结构: 程序中访问images下的图片代码: [java] view plaincopyprint? setIconImage(new ImageIcon(this.getCla

换了应用部署环境,读取jar包中文件遇到的问题。

程序换了个tomcat部署出现了问题,在原来的系统里好好的.最后定位问题发现是使用dom4j读取jar包中文件出现的问题,dom4j的异常是:org.dom4j.DocumentException: null Nested exception: null,经过观察发现拿到的InputStream对象为空.再追代码发现是因为JarFile压根就没有读到文件.顺手换成了当前线程上下文去读取文件,这次抛出的异常很清楚,jar文件找不到.最近经过观察发现是引文文件路径中存在空格,这是和原来系统不同的地方

Java读取jar包资源文件

把java项目打包成jar包,如果jar包中存在资源文件需要访问,需要采取stream的形式访问,可以调用getResourceAsStream()方法,而不能采用路径的方式访问(文件已经被打到jar里面了,不符合路径的).使用getResourceAsStream()方法文件可以有两种方式存放: (1)文件存放在src的类路径下. (2)文件存放在资源文件夹下面,通过Build Path-Use as Source Folder来把普通文件夹变成资源文件夹. 如图,把testA打包成jar包,

【动态页面】(三)之二:通过自定义注解读取Jar包的类名和属性名

上篇博客介绍了通过反射读取Jar包的类名和属性名,但是问题是读不出类名和属性名的中文注释和属性类型.所以上篇博客埋下了一个伏笔,就是通过自定义注解的方式读取Jar包的类名.属性名.中文注释和属性类型.这篇博客我们就来好好讲讲是如何实现的. 首先先说一下,由于我们的Jar包没有放到项目下,所以就想着怎么能把Jar包添加进来,所以先做了一个类似于上传文件的功能,将Jar上传进来,然后再读取Jar包里面的类名.属性名等一系列属性,再添加到数据库中.总体的思路确定了,下面就开始实施. 首先是上传Jar包