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包中的资源文件的更多相关文章

  1. 用命令行将Java程序打包为jar文件

    如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf MyApp.jar D:Jav ...

  2. 如何创建JAR文件?如何运行.jar形式的Java程序?

    一.如何创建JAR文件? .jar是用来压缩档案或者解压档案的文件格式,其特点是具有无损压缩的功能.想知道如何创建这种程序?请访问 http://www.cnblogs.com/yjmyzz/p/ex ...

  3. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  4. Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问

    \第五天-servlet开发和ServletConfig与ServletContext对象\12-WEB应用中的普通Java程序如何读取资源文件.mp4; 多层时,DAO为了得到资源文件中的配置参数: ...

  5. centos7中配置java + mysql +jdk +使用jar部署项目

    centos7中配置java + mysql +jdk  +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...

  6. WEB应用中普通java代码如何读取资源文件

    首先: 资源文件分两种:后缀.xml文件和.properties文件 .xml文件:当数据之间有联系时用.xml .properties文件:当数据之间没有联系时用.properties 正题:   ...

  7. cmd 窗口中运行 Java 程序

    1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...

  8. 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError

    在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...

  9. HTML文件中使用Java程序

    HTML文件中使用Java程序:简而言之,在HTML文件中引入java应用程序,并通过javascript调用其方法.   一. 运行环境 1.JAVA_HOME.CLASSPATH.PATH配置正确 ...

随机推荐

  1. Android中从SD卡中读取歌曲

    先看看我的效果图吧 Activity类 private TextView nameTextView; private SeekBar seekBar; private ListView listVie ...

  2. iOS编译集成linux开源c库的一些记录

    最近一个iOS项目需要使用一些Linux下面的开源c库,说是Linux的其实是跨平台的,各种Unix系统都有支持.理论上iOS来自MacOS,而MacOS其实是一种兼容的Unix系统,所以这些库应该也 ...

  3. 软件测试 Record

    fxcopnunit软件质量 EDW 数据仓库ETL KPI 敏捷 测试计划 单元测试 集成测试 系统测试 对测试结果 阶段性 分析 总结 测试结果报告 环境问题:软硬件用户有问题,我们这边没有有效问 ...

  4. Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)

    Kali Linux能做很多事,但是它主要以渗透测试及'破解wifi密码'闻名. 如果你使用Macbook 请看 使用macbook破解WPA/WPA2 wifi密码 要求: 安装有Kali Linu ...

  5. 【数据库】MongoDB学习

    http://www.w3cschool.cc/mongodb/mongodb-tutorial.html http://api.mongodb.org/python/2.7rc0/examples/ ...

  6. map/reduce类简单介绍

    在Hadoop的mapper类中,有4个主要的函数,分别是:setup,clearup,map,run.代码如下: protected void setup(Context context) thro ...

  7. java RE(正则表达式)

    验证姓名,邮箱,手机号,密码 import java.util.regex.Pattern; /** * 账户相关属性验证工具 * */ public class AccountValidatorUt ...

  8. WPF简单模拟QQ登录背景动画(转)

    介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...

  9. docker 命令记录

    从 Docker 镜像仓库获取镜像的命令是 docker pull.其命令格式为: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 具体的选项 ...

  10. Windows下通过Composer安装Yii2 [ 2.0 版本 ]

    安装好大于5.4或更高版本的PHP环境并开启openssl扩展.如果是Apache服务器,加载Apache的mod_ssl模块. 下载Composer并安装. 开始->运行[或者WIN+R]-& ...