Jar中的Java程序如何读取Jar包中的资源文件
Jar中的Java程序如何读取Jar包中的资源文件
比如项目的组织结构如下(以idea中的项目为例):
|-ProjectName
|-.idea/ //这个目录是idea中项目的属性文件夹
|-src
|-com.zzl //自己开发的类在这个包下
|-config.xml //自己的配置文件
|-target //这个目录是项目编译之后产生的输出文件夹
|-classes //自己写的类编译之后产生的class文件,会存放到这个文件夹下
|-com/zzl //自己写的类编译之后的包
|-config.xml //src下的config.xml配置文件被编译之后会到target/classes下
|-ProjectName.jar //项目打包之后的jar文件
|-ProjectName.iml //idea项目中的模块属性文件
|-pom.xml //项目的pom文件
项目结构如上,src下放着config.xml配置文件,要在com/zzl/包下的程序中读取config.xml的时候,应该像下面的例子中所示的,去指定config.xml的路径。
当把项目打成jar包发布后,jar中的方法就不能通过File file=new File("文件路径")的方式来读取打包到jar中的文件了,需要用如下方法:
public static String getJarFile()throws IOException
{
InputStream in=Test.class.getResourceAsStream("/config.xml");//读jar包根目录下的config.xml文件
Reader reader = new InputStreamReader(in);
BufferedReader bufferedReader = new BufferedReader(reader);
StringBuffer strBuilder = new StringBuffer("");
String line = "";
while((line = bufferedReader.readLine()) != null)
{
strBuilder = strBuilder.append(line);
} return strBuilder.toString();
}
用上面的方法可以读到config.xml中的内容。
该方法同样适用于项目中读取文本文件。
如果要读取的文件放在src目录下的子目录中,比如src/config/config/xml,那么编译之后,config.xml文件会出现在target/classes/config/config.xml。打包之后config.xml文件会在jar包的根目录下的config/config.xml中,所以在程序指定目录的时候应该用/config/config.xml的方式去指定,才能保证正确读取。
Jar中的Java程序如何读取Jar包中的资源文件的更多相关文章
- 用命令行将Java程序打包为jar文件
如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf MyApp.jar D:Jav ...
- 如何创建JAR文件?如何运行.jar形式的Java程序?
一.如何创建JAR文件? .jar是用来压缩档案或者解压档案的文件格式,其特点是具有无损压缩的功能.想知道如何创建这种程序?请访问 http://www.cnblogs.com/yjmyzz/p/ex ...
- Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例
Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...
- Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问
\第五天-servlet开发和ServletConfig与ServletContext对象\12-WEB应用中的普通Java程序如何读取资源文件.mp4; 多层时,DAO为了得到资源文件中的配置参数: ...
- centos7中配置java + mysql +jdk +使用jar部署项目
centos7中配置java + mysql +jdk +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...
- WEB应用中普通java代码如何读取资源文件
首先: 资源文件分两种:后缀.xml文件和.properties文件 .xml文件:当数据之间有联系时用.xml .properties文件:当数据之间没有联系时用.properties 正题: ...
- cmd 窗口中运行 Java 程序
1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...
- 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError
在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...
- HTML文件中使用Java程序
HTML文件中使用Java程序:简而言之,在HTML文件中引入java应用程序,并通过javascript调用其方法. 一. 运行环境 1.JAVA_HOME.CLASSPATH.PATH配置正确 ...
随机推荐
- iphone5s越狱之后必装
一.iphone5s完美越狱之后必装插件一览表 由于iPhone5s配置了强大的64位的A7处理器,所以在iOS7完美越狱后,不少iPhone5s用户发现之前安装的大部分人们插件在越狱后难以兼容.但是 ...
- 初识django框架
django框架 1.框架介绍 根据第一部分内容介绍,我们可以总结出一个web框架应该包含如下三部分:a.sockect服务.b.根据不同的url调用不同函数(包含逻辑).c.返回内容(模板渲染).常 ...
- vue中使用axios发送请求
我们知道,vue2.0以后,vue就不再对vue-resource进行更新,而是推荐axios,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求 1.安装axios cnpm ...
- 【前端】JavaScript入门学习
<button type="button" onclick="alert('hillo!')">Here</button> <sc ...
- AtCoder Grand Contest 017 题解
A - Biscuits 题目: 给出 \(n\) 个物品,每个物品有一个权值. 问有多少种选取方式使得物品权值之和 \(\bmod\space 2\) 为 \(p\). \(n \leq 50\) ...
- 十九、python沉淀之路--装饰器
一.实现装饰器的预备知识 装饰器 = 高阶函数 + 函数嵌套 + 闭包 1.高价函数定义: 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 3.满足上述条件任意一个,都可称之 ...
- python操作rabbitmq、redis
1.启动rabbimq.mysql 在“”运行“”里输入services.msc,找到rabbimq.mysql启动即可 2.启动redis 管理员进入cmd,进入redis所在目录,执行redis- ...
- Dawn 简单使用
1. install npm install dawn -g 2. create project # 1. Create & Initialize $ dn init -t front # ...
- IE 9 下的 css 陷阱
IE 9 下的 css 陷阱 今天 Karson 老大的分享. 根据说明 当 css 文件超过一定大小时会被自动截断. http://ju.outofmemory.cn/entry/168599
- MTK驱动移植相关路径
转自:http://blog.csdn.net/yicao821/article/details/52314578 一.Flash兼容 bootable/bootloader/preloader/to ...