明明引入jar包,却依然ClassNOtFoundException

2024-04-15 19:08

本文主要是介绍明明引入jar包,却依然ClassNOtFoundException,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      用myeclipse和eclipse开发javaweb项目,常常会遇到一个奇怪的现象,明明我都引用了项目依赖的jar包,为何还会报错Java.lang.ClassNotFoundException,不是这个类找不到就是哪个找不到,最后找的都想骂街。。。。

为什么会出现这个诡异的问题呢,这就涉及到java build path引依赖包跟WEB-INFO/lib的区别:
1.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是工程的一部分。
2.解决
你得首先确定你的是编译环境报错,还是程序报错。
因为程序中只认识web-inf/lib中的包。但是编译环境不是,如果编译环境在配置中说在某个地方有它要的包,那么如果那个地方没有,也会提示警告信息。
如果要在程序中正常运行,那么不管来自那里,最后包都是放在web-inf/lib中的。
所以此时你需要手动将需要的jar放到web-inf/lib下,然后clean一下项目,重新发布一下,就OK了。


这篇关于明明引入jar包,却依然ClassNOtFoundException的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906665

相关文章

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基