WEB-INFO/lib & build path 的jar包问题

一、build path&WEB-INFO/lib介绍

build path:可以说是引用; 
WEB-INFO/lib:可以说是固定在一个地方; 
eclipse编译项目的时候是根据build path的,如果不用eclipse来发布项目的话,就会出现找不到jar,tomcat运行项目首先是在它自己的公共lib里找jar,如果找不到的话就会去项目的WEB-INFO/lib目录找,如果找不到就报错。

build path引用的jar可以引用lib下的jar,也可以引用硬盘上任何可以访问位置上的jar,但是,我推荐把需要的jar都放到lib下,这样一旦发生jar包冲突、缺失的问题,我们可以直接到lib下查看,如果放到其它位置,检查起来则相对麻烦。

放到lib下也是一个好习惯,引用其它位置的jar【通常某些同学喜欢用myeclipse自动添加对struts、spring、hibernate的支持】,使用这种方式,很容易造成jar包冲突、缺失的问题,尤其是团队协作的情况下,如果你引用了本地硬盘上的某个jar,提交了.classpath文件到svn,别人检出后,就会报错,因为他的硬盘上的同一位置没有这个jar,而如果你放到lib下,再提交,检出后他的lib下是有这个jar的,因为lib是工程的一部分。

二、复制项目,报错

因为eclipse把build path的配置写在了项目的.classpath文件中,add Extenrnal jar将jar包引入到工程,.classpath文件中的内容就会被更新,所以不就会报错。 
有时直接把jar复制到项目的WEB-INF/lib文件夹中,然后刷新项目,eclipse都会自动把jar在build path中引用。 
如果jar不是在build path里删除引用,而是自己直接把jar删除或者移到另外一个位置,刷新项目就会出现错误,要去build path里把引用删除。(导入jar包可从此导入)

你得首先确定你的是编译环境报错,还是程序报错。 
因为程序中只认识web-inf/lib中的包。但是编译环境不是,如果编译环境在配置中说在某个地方有它要的包,那么如果那个地方没有,也会提示警告信息。
如果要在程序中正常运行,那么不管来自那里,最后包都是放在web-inf/lib中的。 
建议还是先理解下应用程序中包的组成,如果过于依赖于IDE,很多基本的概念会不理解的。

时间: 2024-08-07 12:28:41

WEB-INFO/lib & build path 的jar包问题的相关文章

Web App Libraries无法自动找到WEB-INF的lib目录中的jar包

参考链接http://blog.csdn.net/zhengzhb/article/details/6956130 试了一下果然可以,仔细分析了一下应该是CVS提交代码的时候不小心把项目根目录中.settings里面的org.eclipse.wst.common.component删掉了,现在新建一个然后把如下内容贴到里面保存一下,就能检测到WEB-INF/lib里面的所有jar包了. <?xml version="1.0" encoding="UTF-8"?

Hadoop-1,web页面调用报无hbase.jar包【以解决】 2,报java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;【以解决】

1:web页面调用报无hbase.jar包 本来java文件就没有问题,但是jsp一调用那个java文件里的方法就报错,报的无hadoop/hbase相关报的问题. 主要解决方法是: 复制hbase/lib里面的jar包到hadoop的lib文件里 然后再打开hadoop/etc/hadoop/hadoop-env.sh 增加这一句: 1 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hbase/lib/*:/usr/lib/hbase

Java Web项目缺少jsp、servlet jar包

1.错误描述  Caused by:java.lang.ClassNotFoundException:javax.servlet.jsp.PageContent 2.错误原因      缺少有关的jsp.servlet jar包 3.解决办法       导入J2EElibriary Java Web项目缺少jsp.servlet jar包

eclipse中Build Path 导入的包和复制到 lib 包的区别

Java Build Path是我们编译需要的包,在比如在import ***.***.***时如果没用Java Build Path导入包的话类里面就有红叉,说不识别这个类,build path只是是建立项目对本地存放的包的引用,并没有将包复制到项目中. 复制到lib下是程序运行时需要的包,即便用Java Build Path导入过的包,没放到lib下,运行项目时会出现ClassNotFoundException的异常. 以下内容摘自:http://s343174147.iteye.com/b

maven打包不打lib目录里面的jar包解决办法

起因:我们的项目原为一个在Tomcat中运行的war包,使用maven构建,依赖由maven管理,现在需要和第三方系统对接,使用第三方技术,第三方提供若干jar包,使用时直接把这些jar包放到lib目录,打包时发现报ClassNotFundException,找不到这些类 解决办法:网络查找的方法: 若打成jar包,pom文件中添加: 1 <build> 2   <plugins> 3   <plugin> 4        <groupId>org.apa

java中实现对lib文件中的jar包快速buildpath

当我们把jar文件全部复制到lib后,如果一个一个去buildpath是很麻烦的,这里其实有小技巧的,我们点击第一个jar文件,然后按着shift,再点击最后一个jar文件,就可以实现全选jar包,然后右键-->buildpath即可.

解决maven打包打不进lib下的第三方jar包问题

maven项目有时候找不到第三方jar包的依赖坐标,这时就需要在项目下建立一个文件夹,将第三方jar包放在此处,在maven打包时将文件夹下的jar包打包进去 在pom.xml中添加如下插件,并指明jar包路径 <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8<

idea 为模块添加Tomcat依赖 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包

今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomecat 服务器 添加选择tomcat之后,该项目就会默认添加tomcat中的jar依赖 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/10958312.html

解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包

今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomecat 服务器 接着: 现在问题已经解决.. IDEA虽然使用的还不熟练,但大家要慢慢习惯哦,工作中这个IDE用的还是很普遍的.加油小伙伴们! 原文地址:https://www.cnblogs.com/ifeil/p/9378921.html