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

Java的maven工程读取resources文件,并打可执行的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>

如下图所示:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值