背景:java
有时候,咱们会用IDEA来开发一些小工具,须要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应用,发布时,也须要打成可运行的JAR包。而且,若是依赖第三方jar时,又不但愿第三方jar也打入最终的可运行jar包,而且还但愿,组织下目录结构(如把第三方jar文件,放到最终可运行jar包的并行目录lib下)工具
开发环境开发工具
OS: Windows 8.1ui
JDK: 1.7.0spa
开发工具: IntelliJ IDEA 13.1.1ci
步骤:开发
1. 选中Java项目工程名称,在菜单中选择 F12get
2. 在弹出的窗口中左侧选中"Artifacts",点击"+"选择jar,而后选择"from modules with dependencies"。
it
3. 在配置窗口中配置"Main Class"。
io
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”,输入目录名:libs
6. 用鼠标按住第三方jar,拖入<output root>下的libs目录下
7. 用鼠标选中咱们将要打出的jar包文件,点击下方“Class Path:”后面的按钮,在“Edit Classpath”窗口中,将每一个第三方jar文件前加上相对路径:libs/,造成如:libs/xxx.jar的形式(注意是 / ,而不是 \),这个目录“libs”,就是前面输入的那个“libs”,这里若是第三方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文件。