在 lib 文件夹中添加 jars 文件和在类路径中设置它之间的区别

mac*_*mac 0 java jar

你能解释一下在 lib 文件夹中添加 jars 和将 jars 添加到 classpath 的区别吗?

两者都只是添加罐子的一种方式(任何人都会工作)还是有什么区别?我尝试搜索,但找不到任何答案。

Lui*_*oza 5

如果你有一个 web 应用程序项目捆绑到一个 WAR 中,那么将这些 jar 文件添加到 WEB-INF/lib 中会在部署在 servlet 容器(Jetty、Tomcat)或一个应用服务器(GlassFish、Wildfly)。请注意,这些库仅适用于您正在部署的单个应用程序,而不适用于部署在此服务器中的任何其他应用程序。

如果您有一个带有 lib 文件夹的简单 jar,则将任何 jar 添加到该文件夹​​中都将不起作用。对于必须自己执行的jar文件,需要在classpath中指定要使用的库,否则你的jar将无法运行。对于这种情况,最好将库放在 jar 外部的 lib 过滤器中,以便您可以在 MANIFEST 文件中引用它们。另一方面,您可以使用 maven 生成一个fat jar