Java的maven工程读取resources文件,并打可执行的jar

文章目录

  • Java的maven工程读取resources文件,并打可执行的jar
    • 如何读取resources文件
    • maven如何打可执行的jar

首先这是个maven工程,实现目标:

  1. 如何读取resources文件
  2. 如何打可执行的jar

如何读取resources文件

IDEA的maven工程没有resources文件,创建的方法见intelliJ idea新建maven项目没有resource文件夹。
项目的结构如图所示:

现在的目标就是读取resources下的json和pb文件:

  1. 首先读取json文件,这里的关键是使用InputStream is = FreezePbLoader.class.getClass().getResourceAsStream(file_name);获取InputStream对象,然后再读取成字符串,最后转json。
// import java.io.*;
// import java.util.Map;public static Map<String, Integer> load_vocab_resources(String file_name){String jsonStr = "";try{InputStream is = FreezePbLoader.class.getClass().getResourceAsStream(file_name);BufferedReader br = new BufferedReader(new InputStreamReader(is));String s="";String configContentStr = "";while((s=br.readLine())!=null) {configContentStr = configContentStr+s;}Map vocab =  JSONObject.parseObject(configContentStr);return vocab;} catch (Exception e) {System.out.println( "文件出现异常,读取失败!————");e.printStackTrace();return null;}}// 用法
// Map vocab = load_vocab_resources("/word2idx.json");
  1. 同样读取模型的pd文件,关键是InputStream is = FreezePbLoader.class.getClass().getResourceAsStream("/frozen_model.pb");,可以找到resources文件夹下的/frozen_model.pb。注意要带斜杠,否则报错!
Graph graph = new Graph();InputStream is = FreezePbLoader.class.getClass().getResourceAsStream("/frozen_model.pb");
byte[] graphBytes = IOUtils.toByteArray(is);
graph.importGraphDef(graphBytes);
Session session = new Session(graph);

maven如何打可执行的jar

会输出可执行和不可执行的jar包
pom.xml里增加

<build><finalName>${project.artifactId}</finalName><!--修改编译出来的jar包名,仅为{artifactId}.jar--><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.iflytek.tensorflow.FreezePbLoader</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins>
</build>

如下图所示:

Java的marven工程读取resources文件,并打可执行的jar相关推荐

  1. vbs脚本功能:1、判断系统位数64/32;2、读取注册表,读取应用名称。3、读取txt文件;4、执行exe文件,安装程序。

    vbs脚本功能:1.判断系统位数:2.读取注册表,读取应用名称.displayName就是程序与功能里面展示的应用名称.3.读取txt文件:4.执行exe文件,安装程序. 注意:1.文本编码方式要用A ...

  2. java resources 路径_Java工程读取resources中资源文件路径问题

    正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...

  3. java wav 波形_java读取wav文件(波形文件)并绘制波形图的方法

    本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将 ...

  4. java xml 反射_Java 读取XML文件以及Java 的反射机制实现

    Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...

  5. JAVA实现环形缓冲多线程读取远程文件

    2019独角兽企业重金招聘Python工程师标准>>> 如果用HttpURLConnection类的方法打开连接,然后用InputStream类获得输入流,再用BufferedInp ...

  6. JAVA获取项目工程下的文件

    JAVA获取 工程下的文件  其实很简单主要是理解编译路径  ①class.getResource public static void main(String[] args) {WordTest w ...

  7. Java使用GeoTools轻松读取shapefile文件内容

    日常GIS开发中难免会将一些shapefile文件数据读取存入数据库中,很多人第一想到的就是使用GeoTools操作和显示地图的开源Java 代码库. 生活捉弄人,因为项目需要对于从来没有做过GIS相 ...

  8. 超简单:解析 yml 类型(application.yml)配置文件 、springboot 工程读取 yml 文件中的值

    方法三是我觉得最简单的. 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 工程结构: 2. 我要读取  application.yml 中属性 ...

  9. Java通过javacsv实现读取csv文件数据

    目录 1.添加依赖 2.测试的csv文件 3.实际调用代码 4.返回的数据格式 1.添加依赖 <!--csv文件操作--> <dependency><groupId> ...

最新文章

  1. 带通采样定理简单记录
  2. 当 HTTP 连接池遇上 KeepAlive 时
  3. 如何选择合适的垃圾收集器
  4. 关于第三周——回顾与修正
  5. 《C++ Primer 5th》笔记(4 / 19):表达式
  6. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)
  7. python编程计算器_Python编程之计算器/字符及界面
  8. Struts2学习(三)———— 输入校验和拦截器
  9. 《惢客创业日记》2020.03.16-31(周一) 国家有难,匹夫有责(三)
  10. 开源大数据周刊-第90期
  11. 电子行业ERP解决方案
  12. 深入理解CatBoost
  13. 如何系统地学习网络安全
  14. PDF文件如何修改背景颜色,PDF文件怎么改部分底色
  15. Unity对H5小游戏开发的支持——Project Tiny
  16. DySAT: Deep Neural Representation Learning on Dynamic Graph via Self-Attention Networks
  17. 阿里云服务器的网站被提示该内容禁止访问的解决办法
  18. 大二学期总结(我的机器人开发之路)
  19. ros msg文件数组定义与使用
  20. 斗鱼App产品体验报告

热门文章

  1. MQL4 判断double 数值近似值相等
  2. ISCE-stamps的sbas时序insar基本流程(一):ISCE的预处理
  3. 网络流量在线分析系统的设计与实现+winpcap+vscode+mingw
  4. Java、JSP农产品销售系统的设计与实现
  5. 微信小程序----最最最最最简单的日历做法
  6. 根治脱发和白发的中成药
  7. 四川大学计算机跨专业考研,四川大学计算机好考研吗?四川大学考研874专业怎么复习?...
  8. 电磁鼓采样器含拓展 – Native Instruments Battery 4.1.6 WiN-MAC
  9. linux卸载db2客户端,Linux平台下DB2 UDB V8.1的安装与卸载 -电脑资料
  10. flowable工作流 流程变量_业务流程 BPM、工作流引擎、Flowable、Activiti