文档章节

IDEA打包可运行jar

陈栋
 陈栋
发布于 2016/12/11 22:14
字数 713
阅读 25
收藏 1

转载连接:http://bglmmz.iteye.com/blog/2058785

背景: 

有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包。并且,如果依赖第三方jar时,又不希望第三方jar也打入最终的可运行jar包,并且还希望,组织下目录结构(如把第三方jar文件,放到最终可运行jar包的并行目录lib下)

 

开发环境

OS: Windows 8.1

JDK: 1.7.0

开发工具: IntelliJ IDEA 13.1.1

 

步骤:

1. 选中Java项目工程名称,在菜单中选择 File->project structure... (快捷键Ctrl+Alt+Shift+S)。



 

2. 在弹出的窗口中左侧选中"Artifacts",点击"+"选择jar,然后选择"from modules with dependencies"。



 

3. 在配置窗口中配置"Main Class"。



 

4. 选择“Main Class”后,选择“copy to the output  and link via manifest”,配置“Directory for META-INF/MAINFEST.MF”,此项配置的缺省值是:D:\workshop\DbUtil\src\main\java,需要改成:D:\workshop\DbUtil\src\main\resources,如果不这样修改,打成的jar包里没有包含META-INF/MAINFEST.MF文件,这个应该是个IDEA的BUG(参考:http://stackoverflow.com/questions/15724091/how-to-run-a-jar-file-created-using-intellij-12),配置完成后如下图所示,点击OK进入下一步。(如果选择“extract to the target jar”,即把第三方jar文件,打入最终的可运行jar包时,可以不修改“Directory for META-INF/MAINFEST.MF”的配置,用缺省值即可)


 

5. 右键“<output root>”,选择“Create Directory”,输入目录名:lib



 

6. 用鼠标按住第三方jar,拖入<output root>下的lib目录下



 

7. 用鼠标选中我们将要打出的jar包文件,点击下方“Class Path:”后面的按钮,在“Edit Classpath”窗口中,将每个第三方jar文件前加上相对路径:lib\,形成如:lib\xxx.jar的形式,这个目录“lib”,就是前面输入的那个“lib”,这里如果第三方jar很多的话,可以在“Edit Classpath”窗口中,用鼠标选中所有第三方jar,然后Ctrl+X,把内容cut & copy到UltraEdit里,用列格式一下子全部修改好,再paste到“Edit Classpath”窗口中。完成后如下所示:

这里idea的处理就太不智能了,不如eclipse。我的依赖包肥肠多,我使用sublime编辑器的多行编辑功能方便的在lib行首添加lib\(快捷键command(win:ctrl)+shift+L)


 

8. 完成后,点击OK,Apply等按钮,回到IDEA的主菜单,选择“Build - Build Artifacts”下的“Build”或者“Rebuild”即可生成最终的可运行的jar,并把第三方jar放到和此jar并行的lib目录下,用winrar打开目标jar,可以看到META-INF/MAINFEST.MF文件被正确包含,内容也正确。


 

9. 在jar包的输出目录下,执行命令:java -jar xxx.jar,即可运行jar文件。

本文转载自:http://bglmmz.iteye.com/blog/2058785

共有 人打赏支持
陈栋
粉丝 0
博文 44
码字总数 14858
作品 0
益阳
高级程序员
私信 提问
使用IDEA创建GUI Form项目并构建

本文使用的开发环境是 IDEA使用GUI Form开发的时候,到产品发布打包的阶段,由于IDEA的GUI Form需要依赖IDEA提供的一个jar包,使用IDEA自带的构建、运行方法,在run和debug的时候,都运行的很...

xiaoxin
09/06
0
0
IDEA 打war包部署时子模块jar包没依赖上

使用IDEA在tomcat中部署maven多模块时出现的一个莫名的bug 首先在server中打印下: 可以看见 context [] startup failed due to previous error, see server log for details. 于是我们打开t...

fribble_zwj
10/19
0
0
什么是远程debug?远程debug有什么用?

     这里介绍一些java开发中常用的一些小技巧,多小呢,从不会到会只需要一篇文章这么小。这一篇介绍如何使用jdk自带的扩展包配合Intellij IDEA实现远程debug。   项目中经常会有出现...

java进阶架构师
2017/11/12
0
0
springboot打包与配置文件外置

目标: 1.将普通的MAVEN JAVA工程打包成SpringBoot可运行的jar包 2.将application.yml和log4j2.xml 1.打包 SpringBoot项目打包要求将依赖的jar全部打进去,因为SpringBoot的自动配置需要用到...

特拉仔
07/24
0
0
Tomcat多站点部署及集成到IntelliJ IDEA

Tomcat是Java最常用的Web容器,作为服务端部署的一款轻量级工具,使用非常广泛,这里了简单记录下Tomcat的基础是的使用。 Tomcat的安装和使用就不赘述了,网上很多教程,主要介绍下: 如何通...

it米粉
2017/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ViewPager系列之软件主页面切换制作

效果图:ViewPager制作的页面能左右滑动,而Fragment制作的页面却不能左右滑动。 代码: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.......

鱼想吃肉
29分钟前
2
0
大话后端开发的奇淫技巧大集合

Hi,大家好,很荣幸有这个机会可以通过写博文的方式,把这些年在后端开发过程中总结沉淀下来的经验和设计思路分享出来 模块化设计 根据业务场景,将业务抽离成独立模块,对外通过接口提供服务...

James-
30分钟前
1
0
函数

1、函数的定义:从function关键字开始,后面跟随{ (1)函数名字 (2)圆括号 (3)花括号 } function arr() {}

墨冥
30分钟前
1
0
ZABBIX 3.4 (一) 监测Nginx状态及脚本

ZABBIX 3.4 (一) 监测Nginx状态及脚本 2018年08月31日 16:56:48 YoFog 阅读数:106 标签: zabbix agentzabbix nginxnginx_status监控nginxzabbix脚本更多 个人分类: 运维 版权声明:本文...

linjin200
32分钟前
3
0
Spring 之 IOC 初始化总结

IOC 容器的初始化过程分为三步骤: Resource 定位 BeanDefinition 的载入和解析 BeanDefinition 注册 Resource 定位。我们一般用外部资源来描述 Bean 对象,所以在初始化 IOC 容器的第一步就...

专业搬砖工程师
34分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部