2012-12-03 49 views
5

我见过很多教程和应用程序,它们将jar放入构建路径中,而其他jar放入其web-inf/lib文件夹中,是否有任何显着差异?两者的优点和缺点是什么?什么是我把一个特定的jar放入libs文件夹并将jar放入构建路径的指示器?Java配置构建路径或WEB-INF/lib文件夹

回答

8

带有WEB-INF文件夹的应用程序是一个Web应用程序。这意味着它将打包成WAR文件并部署在服务器上。

如果您使用的是像eclipse这样的IDE,并且将该项目导出为WAR文件,它将自动将jar文件放在lib文件夹下并将它们打包为WAR,并使它们可用于运行在服务器(WEB-INF/lib下的jar包含在应用程序类路径中)。

如果您只是将它们放在其他任何地方并将它们包含在构建路径中,则在导出项目时,您必须声明您希望包含构建路径中的罐子。

基本上,没有太大区别,但如果您知道在运行时需要此jar(即将应用程序部署到服务器之后),最好将它放在WEB-INF/lib文件夹下。

+0

你能否提供一些这方面的文件? – Jewels

1

你是什么意思构建路径?大多数使用的JAR需要在构建(编译)期间可用,因为您的代码依赖于它们 - 否则将无法编译。

真正的问题是将JAR放置在WEB-INF/lib与您的容器/lib目录之间。一般来说,您应该始终将您的JAR放在WEB-INF/lib的应用程序中。将它们放置在全球有几个后果:

  • 单身现在全球所有的Web应用程序(一个类加载器),如果多个部署

  • 它更容易,如果一个图书馆有任何的参考引入内存泄漏你的类(见上文)

  • 您不复制相同的类(每个Web应用程序会重复使用相同的类,而不是让每个类加载器

012的单独副本