java普通项目打包成可执行jar文件时如何添加第三包

在java的web项目中,引用第三方包的时候非常简单。因为在web项目上中,默认有一个web-inf文件夹。web-inf文件夹下有一个lib文件夹,如果有用到第三方包,直接丢进去就行了。但是对于普通的java项目,在编译器中设置第三方包的引用其实也非常简单,但是在把项目导出打包成一个可运行的jar文件的时候,却有点麻烦,因为在这个可运行的jar文件中我们经常会丢失第三包。解决这个问题一般有两种途径:
一、使用eclipse的export的时候,选择Runnable JAR file 这种方式最简单直接

 

二、使用eclipse的export,直接导出为jar文件,在jar文件所在的文件夹中新建文件夹lib,然后把所有的第三方包丢进去,最后手动修改jar文件中的MANIFEST.MF文件,增加Class-Path的配置,例如:
Class-Path: lib/commons-dbcp.jar
其中commons-dbcp.jar为lib文件夹中的第三方包,多个第三方包之间用两个空格分来,具体的语法格式网上可以搜索一下,非常全面

  在对比一下这两种方式之前,我们先了解一个java虚拟机加载程序的一个知识点:
jar文件我们使用解压工具打开实际上可以发现,里面非常简单,就是一些文件夹目录和一堆class文件,文件夹目录实际上代表的就是包名,所以虚拟机在加载的时候就是把jar文件中的所有class文件都进行加载,记住是所有。

所以我们解压第一种方式生成的jar文件,发现我们引用的第三方包这个时候全部都是带包名路径的class文件
而我们的第二种方式通过Class-Path的设置,所以虚拟机会从目录中直接加载第三方jar包,然后再获取其中的class,这样封装结构更加简单,更符合web项目的习惯

综上,第一种方式更加简单,但是第二种方式更加灵活并且符合我们的常规习惯。

posted @ 2019-10-22 16:07  colorfulCat  阅读(367)  评论(0编辑  收藏  举报