最近开始转到intellij idea上做java开发了,尝试下新鲜事物,别人都在用呢。
今天写一个java工具时,想打包成可执行的jar文件,发现犯难了,不知道怎么弄,网上搜索一番,总是看的云里雾里的。经过一番折腾,搞定了,记录下来一起分享。
步骤开始(注意上图搭配下文的说明)
选择开发工具左上角File菜单,选择Project Structure...
在Project Structure对话框中,选择左侧的Artifacts选项,在右侧顶部选择“+”号,接着选择JAR--》Empty或者From modules ...
选择中部“+”号下新建的名称,在左右侧Name选项处更改名称。注意或者更改Output directory输出路径,自己找得到就可以。选择中间“Output Layout”处的“+”号。此处有点扯淡,做过android开发的会以为是什么布局,其实含义是要打包的内容。
点击上一步骤的“+”号后,会弹出此对话框,选择Module Output选项,也就是要打包到jar中的文件,output中是.class文件,正好。选择.java文件是没有用的。
这是列举要选择的项目,直接点击OK。
选择完成后,会多出'JavaRuler' compile output选项。注意,再点击上边红框处的JavaRuler.jar,下边才会出现META-INF/MANIFEST.MF选项。此处自行选择创建或者已有的。
默认指向JavaRuler位置,也就是会在项目根目录创建META文件,便于打包jar。
继续点回上边的JavaRuler.jar文件,在下边出现的Main Class处选择JFrame的入口文件。Class Path处应该是选择第三方jar文件,没试过。配置完成。
选择菜单栏的Build,选择Build Artifacts。
选择Build或者Rebuild开始生成jar文件。
请看项目结构。在根目录out--》artifacts下就有生成的jar文件。可以在硬盘找到这个jar文件,双击执行看看效果。
万一运行不聊,你可以把这个jar文件拖到jd-gui反编译工具中看看。
看看MANIFEST.MF清单文件指向的main入口文件对不对。
看看包路径和class字节码文件对不对。
做过java的朋友,应该知道jar文件的结构。
搞定。