转自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”窗口中。完成后如下所示:

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文件。

IDEA如何打包可运行jar的一个问题。的更多相关文章

  1. IDEA如何打包可运行jar的一个问题

    转载:http://bglmmz.iteye.com/blog/2058785 背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包:或者某些项目不是WEB应用,纯粹是后台应用, ...

  2. 使用Maven打包可运行jar和javaagent.jar的区别

    简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码. java1.5 之前使用的是JVMTI(jvm tool interf ...

  3. spring boot maven打包可运行jar包

    普通打包之后在程序目录运行,或者编写bat运行时会提示“没有主清单属性”,这是因为并没有找到main()方法,需要我们指明告诉java程序 我bat中的代码 @echo off title mytit ...

  4. maven 打包可运行jar包(转)

    目录 1.前提 2.方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3.方法二:使用maven-assembly-plugin插件打包 4.方法三 ...

  5. 【ant项目构建学习点滴】--(3)打包及运行jar文件

    <?xml version="1.0" encoding="UTF-8"?> <project default="compile&q ...

  6. 用gradle打包可运行jar

    参考了 http://www.cnblogs.com/yongtao/p/4104526.html gradle文件加入 apply plugin: 'application' mainClassNa ...

  7. IDEA如何打包可运行jar,外部引用jar包版

    背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包:或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包.并且,如果依赖第三方jar时,又不希望第三方 ...

  8. Maven 打包可运行 jar

    为配合自动化部署hudson,最近研究了如何将eclipse maven工程打包成可运行的jar函数及对应的资源文件.      由于我们工程中包含了多个可运行的任务,在打包成jar时需要分别导出,p ...

  9. idea新建项目打包 ,运行jar,并放入maven仓库

    1.新建项目(转自:http://www.cnblogs.com/wql025/p/5215570.html) 创建一个新Maven项目 new 一个project 不选择任何Maven模板 起个Gr ...

随机推荐

  1. JDK Tools - jinfo: Java 配置信息工具

    jinfo 是 JDK 自带的配置信息工具,可以查看.设置 Java 进程的参数配置. 命令格式 jinfo [ option ] pidjinfo [ option ] executable cor ...

  2. 关于.NET编译的目标平台(AnyCPU,x86,x64)

    转载:http://blog.sina.com.cn/s/blog_78b94aa301014i8r.html 今天有项目的代码收到客户的反馈,要求所有的EXE工程的目标平台全部指定成x86,而所有D ...

  3. Sublime Text2上搭建C/C++环境

    环境:Sublime Text2            win7 64位 1.下载Sublime Text2并安装     下载地址:http://www.sublimetext.com/ 2.需要用 ...

  4. 第二篇、HTML5新增标签

    <html> <head> <meta charset="UTF-8"> <title>html5新增的标签</title&g ...

  5. iOS崩溃日志分析

    Incident Identifier: 55864905-937C-4172-B435-2ACA13D3070ECrashReporter Key: b85cab13431711060a5fab55 ...

  6. How to: Signing Installers You Create with Inno Setup

    Original Link: http://revolution.screenstepslive.com/s/revolution/m/10695/l/95041-signing-installers ...

  7. C++ 中的类型转换机制详解

    Tips: This article based on Scott Meyers's <<Effective C++>> article 27: Minimize Castin ...

  8. Windows Phone 动态改变ListBox样式

    使用ListBox时通常会借助ItemTemplate帮助我们实现更复杂多样的样式显示,体现了Xaml的灵活.如何动态改变变ListBox的样式,实现类似电脑资源管理器中列表显示和图标显示形式的替换. ...

  9. Mac 系统下安装 MySql

    Mac原生没有带MySql,想要使用需要自己去安装. 下载. 首先去mysql官网下载安装包. 由于现在mysql对企业有服务,所以有所谓社区版(community)和企业版(enterprise), ...

  10. Linux – RedHat7 / CentOS 7 忘记root密码修改

    1.(a) 开机出现grub boot loader 开机选项菜单时,立即点击键盘任意鍵,boot loader 会暂停. (b) 按下’e’,编辑选项菜单(c) 移动上下鍵至linux16 核心命令 ...