打包流程

1. 打开菜单栏File-Project Structure

     

idea工程打包为jar java idea 打包成jar包_intellij-idea

2. 点击Artifacts

    

idea工程打包为jar java idea 打包成jar包_idea工程打包为jar java_02

3. 点击 "+" - JAR - From module with depenencies

    

idea工程打包为jar java idea 打包成jar包_intellij-idea_03

4. 后弹出如下界面,自此开始,各种问题就来了

   

idea工程打包为jar java idea 打包成jar包_intellij-idea_04

  • 首先Module中,我SocketDemo的Module含有SocketDemo、SocketDemo_main、SocketDemo_test三个,一定要选择main


idea工程打包为jar java idea 打包成jar包_jar_05

  • Main Class选择自己要打包的类(一个Module一个包下可能有多个类需要打包),我做了一个测试类Test

        

idea工程打包为jar java idea 打包成jar包_idea工程打包为jar java_06

  • JAR files from libraries 第一个选项只生成主类(main)的jar包,第二个选项不太清楚,看别的博客说是生成的jar包包含Module中引用的所有jar包,但选择第二个很大可能在以后的运行中出现问题,我反正是选的第一个

        

idea工程打包为jar java idea 打包成jar包_idea工程打包为jar java_07

  • 接下来是 MF文件的存放目录,重点。不能使用默认目录,必须自定义目录,不然会运行错误,也不能使用src/main/resources这个目录(这个目录是我建project时自带的,也可能没有),自定义目录也不能在src/main下建名为resources的文件。于是我新建了resource

       

idea工程打包为jar java idea 打包成jar包_java_08

  • 最终是这样的,点击OK

       

idea工程打包为jar java idea 打包成jar包_jar_09

  • 此时应该也必须有META-INF此文件,不然会运行错误。若JAR files from libraries选择src/main/resources目录,是没有META-INF文件的。Output directory是jar包的保存目录

       

idea工程打包为jar java idea 打包成jar包_idea工程打包为jar java_10

  • 点击OK

5. 点击Build-Artifacts

    

idea工程打包为jar java idea 打包成jar包_jar包_11

6. 点击Build

    

idea工程打包为jar java idea 打包成jar包_jar_12

7. 此时Output directory便出现了jar包

   

idea工程打包为jar java idea 打包成jar包_idea工程打包为jar java_13

8. 打开CMD窗口,运行jar包。一定要cd到jar包所在目录(Output directory),一定要使用java - jar jar包名称


idea工程打包为jar java idea 打包成jar包_jar_14

结束。欢迎一起交流~~~