一、普通Maven项目打包方式
强烈建议不要使用 maven 自带的 package命令的打包项目(各种奇葩问题出现,要么无法输入,要么文件路径找不着),而是使用 IDEA 自带的 build 打包项目。
IDEA 自带 build 打包项目成 jar 包步骤:
① 找到打包成jar包的配置入口:File => Project Structure => Artifacts => JAR => From modules whith ...
② 配置主启动类
③ 开始打包
④:查看是否打包成功
二、 关于打包后的 jar 包运行出现 FileNotFoundException
, 而直接运行未打包项目又不报错的问题分析及解决
① 问题分析:
平时我们获取一个文件的内容,路径基本都是写的相对路径:
接下来我们来看看打包后的 text.txt 的位置:
有没发现打包后的项目已经没了 src\main\resources\
路径,text.txt 直接被放在了根路径,这就是为什么我们打包后会抛出 FileNotFoundException
异常。
② 解决方法:
- 打包项目的时候把文件的路径改成
/text.txt
- 使用
Main.class.getClassLoader().getResourceAsStream("text.txt")
绕过路径转换 (推荐)
举例:
三、运行jar包命令提示没有主清单属性
① 问题分析:这样的问题是因为,jar包中的META-INF文件夹下的MANIFEST.MF文件缺少定义jar接口类。说白了就是没有指定class类。
这里说明一下MANIFEST.MF就是一个清单文件, 通俗点将就相当于WINDOWS中ini配置文件。用来配置程序的一些信息。
② 问题解决:解决这个问题的方法就是要在MANIFEST.MF文件中添加一个入口类。即需要一个Main-Class定义行。打开 jar 包找到 MANIFEST.MF 文件 ,如下配置即可