JRE System Library、Referenced Libraries、Web App Libraries的含义

  • JRE System Library、Referenced Libraries、Web App Libraries 这三个都是jar包的存放集合
  • JRE System Library:指Java SE 的常用库文件集合,建立普通的Java项目均会使用。
  • Referenced Libraries:指你项目中所使用的第三方库文件集合,如果你把项目所需要的其他JAR包直接加在,项目 --> 属性 --> Java Build Path --> Libraries 中的时候,Eclipse 会自动将这些JAR包归类到一个集合中, 并取名为 Referenced Libraries ,显示在项目中。
  • 问:经常在SSH中出现jar包冲突,不知是 Referenced Libraries 中的jar文件冲突,还是 WebRoot/WEB-INF/lib/ 下jar文件冲突?
    • 解答:编译期冲突是由 Referenced Libraries 中jar包冲突引起;运行期冲突是由 WebRoot/WEB-INF/lib/ 下jar文件冲突引起的。
    • 首先,Referenced Libraries 可以是引用 WebRoot/WEB-INF/lib/ lib下的jar包,也可以是其他从别的地方复制过来的第三方jar包。Referenced Libraries 是编译环境下使用的JAR包,所谓编译环境下使用的JAR包,就是说你在Eclipse中进行源文件的编写的时候,所需要引用到的类都 Referenced Libraries 这个集合中的JAR包中拿。
    • WebRoot/WEB-INF/lib 中的JAR包是运行时环境下使用的JAR包,所谓运行时环境下使用的JAR包,就是说你在运行你的项目的时候所需要使用的JAR包的集合。
    • 注意区分两种环境:编译环境与运行环境。
  • Web App Libraries: 关于web项目没有看到Web App Libraries,可以通过右键项目 --> built path --> Configure built path --> 点击libraries标签 --> 选择右边的 Add Library… 按钮 ,在弹出的窗口中选择 Web App Libraries 添加即可。

  • Referenced Libraries 是存放第三方的jar包,也就是自己导入的jar包。在项目属性的Java Build Path中的Libraries中配置。
    • 本人理解:这里导入和配置jar包,都是为了让web工程能够在eclipse开发环境可以正常编译,不报错而已。如果该web工程利用eclipse生成war包,是不会导出其jar包到 WEB-INF/lib文件夹下的。
  • Web App Libraries 的主要作用是让eclipse导出war包的时候,会把其目录下的所有jar或者项目中的工程引用都导出到WEB-INF/lib文件夹下。
    • Web App Libraries中的jar包在eclipse中项目属性的Java EE Module Dependencies 配置的。如果你勾上了,或者添加了外部jar包,都会在WEB-INF/lib文件夹下生成。
    • 当然,如果你直接在WEB-INF/lib文件夹下,copy一个jar进入,刷新一下,Web App Libraries 也会自动增加一个jar的引用。简单说,Java EE Module Dependencies的配置只针对Web App Libraries。
  • 在项目发布的时候 Referenced Libraries 下面的jar包不会被打包

  • 补刀1:
    • EJB = Enterprise Java Bean
      • 实体Bean --> 类似于Hibernate中的持久化对象
      • 会话Bean --> 类似于Service
      • 消息驱动Bean --> 发送消息
    • EAR Libraries:开发EJB工程所需的库包。
    • EAR Libraries:是开发JavaEE服务器端组件模型所需要的库包。但是现在一般都用轻量化的框架实现模块化。EJB太笨重了,2003年的淘宝就是采用EJB开发,现在已经很少见了。
    • 开发EJB工程所需的库包,像我们常用zip或者rar一样,也是可以解压出来的。
    • 顺便说下:
      • war包:是做好一个web应用后,通常是网站,打成包部署到容器中。
      • jar包:通常是开发时要引用通用类,打成包便于存放管理。
      • ear包:企业级应用,通常是EJB打成ear包。
      • 所有的包都是用jar打的,只不过目标文件的扩展名不一样。

  • 补刀2:
    • cdn全称是Content Delivery Network,主要用于加速静态资源,如网站上面上传图片、媒体、以及引入的一些js和css等文件。它的加速依靠各个网络节点,例如100台CDN服务器分布在全国,从上海访问,会从最近的节点返回资源,这是核心。
posted @ 2018-10-08 10:06  黑泽君  阅读(3117)  评论(0编辑  收藏  举报