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配置正确 ...
随机推荐
- 制作.bat文件运行指定目录的.bat或者exe
上代码: goto start call "D:/Program Files/activeMQ/apache-activemq-5.3.2-bin/apache-activemq-5.3.2 ...
- debounce与throttle区别
在2011年,Twitter网站曾爆出一个问题:在主页往下滚动时,页面会变得缓慢以致没有响应.John Resig发表了一篇文章< a blog post about the problem&g ...
- 基于用户登陆的struts2中action的分类详解
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
- 目标跟踪之ECO:Efficient Convolution Operators for Tracking
一. 相关滤波算法总结 作者首先分析了 影响相关滤波算法效率 和 导致过拟合 的几个原因: 1)Model Size (模型大小) 包括两个方面: - 模型层数,对应多分辨率 Sample,比如多层 ...
- PHP防止mysql注入方法
本文纲要: 1. 初始化你的变量 2. 一定记得要过滤你的变量 [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /us ...
- JDBC 4 PreparedStatement 与Statement 的区别
1 有安全性 PreparedStatement 可以由于不是使用拼接,防止了sql注入,提高了安全性. 2 更方便 PreparedStatement 可以自动对类型进行转换,代码可读性,可维护 ...
- 【转】C#中的线程 入门
Keywords:C# 线程 Source:http://www.albahari.com/threading/ Author: Joe Albahari Translator: Swanky Wu ...
- thunderbird 设置 邮件回复时内容在上方显示
1 . 编辑->属性 2.选择当前账户,在弹出窗体的右下角 选择 管理标示 ,在弹出窗中选择编辑 3.在弹出标识设置窗体中选择 编写&地址簿 选项卡选择 在引用内容之前回复
- elasticsearch 动态模板
在elasticsearch中,如果你有一类相似的数据字段,想要统一设置其映射,就可以用到一项功能:动态模板映射(dynamic_templates). 每个模板都有一个名字用于描述这个模板的用途,一 ...
- bzoj 1415 [Noi2005]聪聪和可可——其实无环的图上概率
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1415 乍一看和“游走”一样.于是高斯消元.n^2状态,复杂度n^6…… 看看TJ,发现因为聪 ...