背景
不好意思,我标题党了,我项目中需要把单个java文件打成jar包,再把jar包打成zip包,eclipse很容易把java文件打成jar,但是idea试了很多次都不行,看了很多博客都千篇一律的,要么把整个工程打成jar,要么把带main方法的java文件打成jar,完全找不到我想要的方式,最终尝试通过命令行实现,特此标题党给和我一样困惑的兄弟们一个方案,以下是我实现的方式(有会使用idea把单个不含有main方法的java文件打成单个jar包的大佬麻烦评论区留言指教一下,跪谢)
实现
通过命令行命令实现,步骤
- 将需要打成jar包的java文件编译成class文件,idea里的小锤子
build project
,或者javac命令也可 - 找到class文件,在文件所在目录打开命令行(shift+鼠标右键,选择在此处打开命令窗口,或者在目录上输出cmd也可快速打开命令行)
- 执行命令
jar -cvf XXX.jar YYY.class
,这个是把单个class文件打成jar包 - 如果需要把整个目录打成jar包可以执行
jar -cvf XXX.jar ZZZ
,这里需要注意这个ZZZ的目录必须是java编译成class文件的整个包的最外层目录,比如我们一般的java文件的包是com.a.b,那么ZZZ必须是com - 最后的实现效果是这样的
未验证
尝试了idea的打包,但是出来的jar包没有META_INF文件夹,也记录下,有大佬知道怎么打包跪求指点
- 打开Project Structure,选择Artifacts,新增jar,选择empty
- 生成jar之后给jar添加文件,点击file,选择所打包的class文件,保存
- 点击build–》build artifact,选择刚新建的jar名,执行build,最终会在配置好的地址生成jar,地址是步骤2的output dirc目录
- 最终实现
小记
第二种方法应该只是把指定文件打包到jar里面,但是是不是一个可运行的jar就不知道了,如果第一步选择from module的话需要指定一个主函数,可我的类就没有主函数也不需要主函数,所以只能自己命令行实现了或者使用eclipse打包。有吊大的知道怎么打jar包跪求评论区指点!!!
参考:https://blog.csdn.net/qq_39821316/article/details/87269337