IntelliJ IDEA 2017 打包jar和相关问题处理
来源:互联网 发布:tensorflow 物体识别 编辑:程序博客网 时间:2024/06/05 08:08
记录一下自己用IntelliJ IDEA打包jar的问题。主要是最近写了tinify的java版,打包jar出了点小问题,所以在这里记录一下。
先简单介绍一下用IntelliJ IDEA打包的流程,后面有就遇到的打包问题来说明如何解决。
一、jar打包流程
IntelliJ IDEA本身已经做得很强大了,我们只需要按照它提供的功能来操作就行了。这里是以我上篇文件写的java版tinify的api打包jar为例子讲的。
- 菜单:文件->项目结构…(也可以按快捷键ctrl+alt+shift+s)
- 在弹窗最左侧选中Artifacts->左数第二个区域点击”+”,选择jar,然后选择from modules with dependencies,然后会有配置窗口出现
- 最终的创建jar面板
必须注意的是,必须有MANIFEST.MF文件。你创建的时候会自动创建这个文件的 - 生成jar文件
内部版本号菜单
弹出的小面板
默认情况,生成的jar文件在classes下面 - 运行jar文件
E:\workspaces\JavaProjects\tinifyJava\classes\artifacts\tinify_jar>java -jar tinify.jar
二、打包jar有可能遇到的错误
有时,你打包出来的jar会出现这种情况
E:\workspaces\JavaProjects\tinifyJava\classes\artifacts\tinify_jar>java -jar tinify.jartinify.jar中没有主清单属性
解压tinify.jar,查看它的MANIFEST.MF文件内容
Manifest-Version: 1.0Archiver-Version: Plexus ArchiverBuilt-By: jwilsonCreated-By: Apache Maven 3.2.3Build-Jdk: 1.8.0_45
发现这个内容和我们src里面的MANIFEST.MF文件内容不一样,这个是src下面的MANIFEST.MF文件内容
Manifest-Version: 1.0Main-Class: TinifyClient
两者的区别是
Main-Class: TinifyClient
明明是按照操作说明那里,在src下面增加MANIFEST.MF(自动生成的),为什么打包还是会出错呢。
后来仔细想了一下,发现编译后class的文件夹没有对应的MANIFEST.MF文件。
jar打包是需要class文件的,那么自然也是读取这个目录的MANIFEST.MF文件了。所以把MANIFEST.MF复制到默认生成class文件的文件夹:target,再次打包jar,问题得以解决。最终输出结果:
E:\workspaces\JavaProjects\tinifyJava\classes\artifacts\tinify_jar>java -jar tinify.jarE:\workspaces\JavaProjects\tinifyJava\classes\artifacts\tinify_jar根据配置来压缩图片上传:E:\tinify\input\mail\bg\bg.png
终于可以正常运行了!
阅读全文
1 1
- IntelliJ IDEA 2017 打包jar和相关问题处理
- Intellij IDEA 打包jar的多种方式
- IntelliJ IDEA 打包出现的问题
- Intellij Idea 12 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij IDEA 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将java项目打包成jar
- 使用Intellij Idea打包java为可执行jar包
- Intellij Idea 将java项目打包成jar
- Intellij Idea 将Zxing二维码扫描打包成jar包
- intellij idea打war和jar包
- idea 2017打包jar包
- webpack搭建ES6环境
- 获取当前iOS版本号
- 使用 netstat 实时监控IP连接数
- 《高效程序员的45个习惯——敏捷开发修炼之道》
- sqlite数据库介绍一
- IntelliJ IDEA 2017 打包jar和相关问题处理
- MapReduce自带wordcount的实现
- Scala语法(-)
- 阿里百川HotFix2.0热修复初体验
- MySQL数据库表名、列名、别名区分大小写的问题
- LeetCode-60. Permutation Sequence
- hihoCoder 1014 : Trie树
- 【BUG】 ContainerBase.addChild---IDEA 和Tomcat部署非maven的web项目
- Spring4第二讲学习笔记,配置文件详解