文档章节

IDEA打包可运行jar

陈栋
 陈栋
发布于 2016/12/11 22:14
字数 713
阅读 19
收藏 1
点赞 0
评论 0

转载连接: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
博文 34
码字总数 14858
作品 0
益阳
高级程序员
idea+springboot+maven打包问题

大家好我的项目结构: app-parent --app-core --app-web app-parent: app-coreapp-web app-web: com.dingfengkjapp-core0.0.1-SNAPSHOT...

樱木花道VS康 ⋅ 05/04 ⋅ 0

idea下springboot打包问题

大家好我的项目结构: app-parent --app-core --app-web app-parent: app-coreapp-web app-web: com.dingfengkjapp-core0.0.1-SNAPSHOT...

樱木花道VS康 ⋅ 05/04 ⋅ 0

IntellJ IDEA Maven编写Hadoop程序

因为现在大部分Hadoop教程都是介绍Eclipse的,而且是手动加载.jar的。 所以把maven在Idea的写法记录一下。因为我现在用的是2.7.6的Hadoop.首先POM如下 <?xml version="1.0" encoding="UTF-8"...

算法之名 ⋅ 05/09 ⋅ 0

2.2 Selenium 环境搭建

Java 环境搭建 下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装JDK 配置Java 环境 校验是否安装完成 控制台输入: java –version 提示版......

米阳MeYoung ⋅ 04/24 ⋅ 0

IDEA配置、安装及创建、发布项目

IDEA配置、安装及创建、发布项目 一、下载 进入官网:https://www.jetbrains.com/idea/ 点击右上角download,可以进行版本选择 此处选择使用2015版本,分别有企业版和社区版,企业版收费,社...

JS_HCX ⋅ 05/26 ⋅ 0

IDEA查看源码时提示:Library source does not match the bytecode for class的问题分析

通过Maven查看依赖的源码时,通常是Maven自动下载JAR包附属的source包,但是会出现一个问题,由于使用lombok插件会造成编写的Java文件和编译后的class上有差别,所以IDEA打开时看到的是Maven...

easonjim ⋅ 2017/11/23 ⋅ 0

Spring Boot干货系列: (一)优雅的入门篇

     前言   Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备。   正文   首先声明,Spr...

后端编程嘟 ⋅ 2017/03/12 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 06/19 ⋅ 0

Hadoop MapReduce程序使用第三方jar的解决方案

开发MR程序时,经常需要使用第三方jar包,如何让MR程序正确找到第三方jar包就是一个重要的问题。 一般常用的解决方法有如下几个 把第三方包放至集群所有节点上 把第三方jar包预先放置到集群中...

litterMo ⋅ 04/17 ⋅ 0

如何永久激活(破解) IntelliJ IDEA 2018.1.3

1、去官网下载并安装 idea 地址:https://www.jetbrains.com/idea/download 文件有点大,耐心等待一会儿。 2、下载破解(crack) jar 包 地址 http://idea.lanyus.com/jar/JetbrainsCrack-2.7-...

志哥 ⋅ 05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部