IntelliJ IDEA 2017 打包jar和相关问题处理

原创 2017年06月07日 22:54:27

记录一下自己用IntelliJ IDEA打包jar的问题。主要是最近写了tinify的java版,打包jar出了点小问题,所以在这里记录一下。
先简单介绍一下用IntelliJ IDEA打包的流程,后面有就遇到的打包问题来说明如何解决。

一、jar打包流程

IntelliJ IDEA本身已经做得很强大了,我们只需要按照它提供的功能来操作就行了。这里是以我上篇文件写的java版tinify的api打包jar为例子讲的。

  1. 菜单:文件->项目结构…(也可以按快捷键ctrl+alt+shift+s)
    这里写图片描述
  2. 在弹窗最左侧选中Artifacts->左数第二个区域点击”+”,选择jar,然后选择from modules with dependencies,然后会有配置窗口出现
    这里写图片描述
  3. 最终的创建jar面板
    这里写图片描述
    必须注意的是,必须有MANIFEST.MF文件。你创建的时候会自动创建这个文件的
  4. 生成jar文件
    内部版本号菜单
    这里写图片描述
    弹出的小面板
    这里写图片描述
    默认情况,生成的jar文件在classes下面
    这里写图片描述
  5. 运行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.jar
tinify.jar中没有主清单属性

解压tinify.jar,查看它的MANIFEST.MF文件内容

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: jwilson
Created-By: Apache Maven 3.2.3
Build-Jdk: 1.8.0_45

发现这个内容和我们src里面的MANIFEST.MF文件内容不一样,这个是src下面的MANIFEST.MF文件内容

Manifest-Version: 1.0
Main-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.jar
E:\workspaces\JavaProjects\tinifyJava\classes\artifacts\tinify_jar
根据配置来压缩图片
上传:E:\tinify\input\mail\bg\bg.png

终于可以正常运行了!

版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑

Intellij Idea 将java项目打包成jar

1.菜单:File->project stucture 2.在弹窗最左侧选中Artifacts->"+",选jar,选择from modules with dependencies,然后会有配置...
  • x356982611
  • x356982611
  • 2014年11月23日 01:55
  • 141904

Idea打包Jar文件

前言 如何使用Idea把多个可执行的Class文件,打到一个Jar包里,使用Java命令执行不同的Class文件呢?还有,如何打成直接可执行的Jar包呢?下面进行说明...
  • hotdust
  • hotdust
  • 2017年02月21日 10:46
  • 6432

Intellij IDEA 将java项目打包成jar

1.菜单:File->project stucture 2. Artifacts--->JAR--->from modules with dependencies 3. 选择配置 ...
  • syb18810107241
  • syb18810107241
  • 2016年11月15日 23:12
  • 2465

IDEA 项目打成jar包

本来IDE里面运行正常的项目,打包成jar后经常访问不到文件,现记录解决方法。 project目录结构:TestPro\ bin lib src\ com.f...
  • Folmarcher
  • Folmarcher
  • 2016年03月14日 20:07
  • 7744

IntelliJ IDEA 如何打包可运行 jar

转自:http://bglmmz.iteye.com/blog/2058785 背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应...
  • kl28978113
  • kl28978113
  • 2017年01月11日 10:38
  • 4855

intellij idea 导出可执行jar

最近开始转到intellij idea上做java开发了,尝试下新鲜事物,别人都在用呢。 今天写一个java工具时,想打包成可执行的jar文件,发现犯难了,不知道怎么弄,网上搜索一番,总是看的云里雾...
  • fesdgasdgasdg
  • fesdgasdgasdg
  • 2017年06月21日 22:46
  • 3790

IDEA打包jar包的多种方式

本篇文章总结出用IDEA打包jar包的多种方式。项目打包Jar包可以参考如下形式:用IDEA自带的打包形式;用Maven插件maven-shade-plugin打包;用Maven插件maven-ass...
  • achuo
  • achuo
  • 2017年12月13日 22:20
  • 444

idea打包java可执行jar包

1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dependen...
  • xiao257
  • xiao257
  • 2016年10月31日 14:02
  • 4955

idea 将工程项目打包成war

1.File--Project structure ---- Artifacts ----- + -----web Application :Archive ---for ' **:war explo...
  • shubingzhuoxue
  • shubingzhuoxue
  • 2016年05月11日 22:17
  • 9471

idea 2017打包jar包

idea2017添加jar包        最近项目用到了打包jar包,顺便写篇博客记录下,也方便有需要的同学了解下    第一步点击File ,打开Project Structure     ...
  • dabai_cai
  • dabai_cai
  • 2017年10月03日 11:20
  • 737
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IntelliJ IDEA 2017 打包jar和相关问题处理
举报原因:
原因补充:

(最多只允许输入30个字)