IDEA生成可执行的jar文件

时间:2021-02-03 18:33:19

场景

用IDEA开发一个Java控制台程序,项目完成后,打包给客户使用。

做法

首先用IDEA打开要生成jar的项目,打开后选择File->Project Structure...

IDEA生成可执行的jar文件

选择Artifects选项再点击+号

IDEA生成可执行的jar文件

选择JAR,再选择From modules with dependencies...,来新增一个Artifect

IDEA生成可执行的jar文件

弹出对话框让我们配置这个Artifect

  • Main Class 选择程序入口类,也就是main方法所在的类
  • Directory for META-INF/MANIFEST.MF,选择入口类所在的src目录

IDEA生成可执行的jar文件

设置完后点击OK

如果想要将资源文件(图片,音频,视频,二进制文件等)打包到jar中。在Output Layout标签卡下,点击+,选择Directory Content

IDEA生成可执行的jar文件

选择你想打包的文件所在的文件夹,这里我选择assets

IDEA生成可执行的jar文件

这样子做之后,如果直接打包会把assets目录下的文件和文件夹打包进jar,不会把assets目录本身打包进jar,如果想连同assets目录打包进jar,那么继续。

在我们刚添加的项右键,点击Surround With...

IDEA生成可执行的jar文件

选择Directory

IDEA生成可执行的jar文件

创建一个文件夹将它包裹起来。

IDEA生成可执行的jar文件

包裹起来后,点击OK回到IDEA主界面

IDEA生成可执行的jar文件

最后,点击Build->Build Artifacts...

弹出一个对话框,点击Build,生成jar文件

IDEA生成可执行的jar文件

生成的jar文件在工程目录下的classes/artifacts/<工程名>_jar下找到

java -jar命令尝试运行生成的jar,没有问题。说明生成成功

IDEA生成可执行的jar文件

我们查看jar里面的文件结构,也符合预期。

IDEA生成可执行的jar文件

读取资源

在java代码中,如果要读取资源,可以通过<ClassName>.class.getClassLoader().getResourceAsStream(path);这种方式得到一个资源文件的InputStream。

上面的getResourceAsStream方法,path参数要传进去资源的相对路径,比如在jar中的assets目录下有个sound.mp3的文件,那么就写getResourceAsStream("assets/sound.mp3")