这个CLASSPATH
环境变量仅由java.exe
命令,甚至只有在没有任何-cp
, -classpath
, -jar
争论。Eclipse、NetBeans和IDEA等IDE忽略了它。另见尽管使用CLASSPATH环境变量,java.lang.ClassNotFoundException.
这个构建路径仅适用于获得项目代码编译所需的库。手动放罐/WEB-INF/lib
,或设置部署程序集,或者让外部构建系统(如Maven)将<dependency>
像罐子一样/WEB-INF/lib
在构建过程中产生的WAR,只适用于需要在目标环境上部署和运行代码的库。请注意,您不应该在/WEB-INF/lib
..罐子必须放在根上。
有些库已经由目标JavaEE服务器或servlet容器提供,如JSP、Servlet、EL等。因此,不需要将这些库的JAR放在/WEB-INF/lib
..而且,它只会导致类加载问题。(间接地)将它们指定为构建路径只有。在Eclipse中,通常通过设置目标运行时因此。它会自动进入构建路径..另见如何在Eclipse项目中导入javax.ServletAPI?
其他库,通常是第三方库,如Apache Commons、JDBC驱动程序和目标servlet容器不提供的标准库(例如Tomcat不支持JSF、CDI、JPA、EJB等),最终需要在/WEB-INF/lib
..您不一定需要在构建路径..也许只有当你已经拥有它的时候用户库,但你应该使用部署程序集这一切的背景。另见在Eclipse构建路径中使用用户库时的ClassNotFoundException.
如果您正在使用Maven,则需要确保将库标记为<scope>provided</scope>
如果目标运行时(如JavaEE、servlet、EL等)已经提供了这些功能,以防止部署到WildFly、Tomee等。/WEB-INF/lib
(并可能导致与服务器绑定库的冲突),但它们最终将出现在Eclipse的构建路径(并将项目的代码编译)。