明明导入了jar包,idea下仍然classnotfoundexception. 如果没有jar包冲突

ZT:https://blog.csdn.net/wn084/article/details/80482187

        如果你的问题属于“引入jar包后编译能通过但在web中调用就报ClassNotFoundException”,请认真看下面的解决方案。不属于请自觉绕道。^_^

出现这种问题就说明你引入的jar包在WEB-INF\lib下不存在。那为什么能通过编译呢?拜托,编译的时候又不从WEB-INF\lib目录下寻找类,是从classpath下寻找的,也就是说你引入的jar包只是存在于classpath下。既然分析清楚问题出在哪里,下面就分别演示在IDEA和Eclipse下怎么把jar包正确的引入WEB-INF\lib里面。

在Eclipse下:

在Eclipse下,很多人会这样引入jar包:

先在项目根目录下创建一个文件夹,将jar包放入:

    

再选中所有jar包,单击右键,点击Add to Build Path

这时候项目就会出现这个Libraries:

这样就引入了Junit的包,可以使用Junit进行单元测试,因为简单的Junit测试并不涉及web环境,所以这样并不会报错。

若你引入的jar包中会在web环境中使用,上述引入方法就行不通了。因为需要从WEB-INF\lib中寻找jar包,而不是classpath下,所以需要将jar包放在WEB-INF\lib下。项目中出现Web App Libraries代表引入成功。如果没有出现,需要右键jar包,选择Add to Build Path,否则无法通过编译。

在IDEA下:

  • 如果创建的web项目中WEB-INF下存在lib目录,将jar包放入其中后右键,选择Add as Library...即可
  • 如果没有,可以自行创建后执行上述步骤
  • 如果不想创建,请看如下步骤:

        

创建一个文件夹将jar包放入,后右键选择Add as Library...

        之后打开项目结构界面:

打开后按照这个步骤操作即可:

    明明导入了jar包,idea下仍然classnotfoundexception. 如果没有jar包冲突

    原文地址:https://www.cnblogs.com/wtjqs/p/12628933.html

    时间: 2024-07-31 02:47:12

明明导入了jar包,idea下仍然classnotfoundexception. 如果没有jar包冲突的相关文章

11.Cocos2dx2.2下使用JNI技术调用jar包里面的一些方法遇到的一些问题及解决方案。

<span style="font-family: Arial, Helvetica, sans-serif;">步骤一:导入JniHelper.h头文件.</span> #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "JniHelper.h" #endif: 此时会遇到JniHelper.h头文件无法找到的问题,需要添加附加包含目录即可解决问题.具体操作步骤如下:右击项目-

【java】 linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,

解决weblogic下通过war加载jar包中的struts的action找不到的问题

今天在功能测试环境中weblogic上部署应用时,启动后报错,说是spring找不到对应的action,所以怀疑是类加载的问题,找度娘一搜,果然是猜的没错,找到解决方法: 1. 将struts.xml加入: <constant name="struts.convention.action.includeJars" value=".*你的jar包名.*" /> 然后启动正常,但登陆后找不到struts的action.在开发环境中明显是可以的,而且在tomc

Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7

Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7 android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现了actionbar,如果要使用actionbar,那么手机系统必须在3.0以上才能使用,这样将会导致很多用户不能安装apk从而损失用户:(有人会想,为什么不直接将新出来的东西全部打包到sdk中而是提供各种支持包?我

使用google自带包实现下拉刷新功能

android 实现下拉刷新有很多开源的源码可以用 比如 :PullToRefreshListView  使用起来也很方便 现在还可以直接使用google libs下面的 android-support-v4.jar 这个包来实现了,请更新你的sdk到最新 使用 xml 布局 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"

wireshark在windows下无法抓取localhost数据包

在调试SSL时要抓包,通过tcpview和minisniffer等工具明明看到tcp连接已经建立并开始收发数据了,但wireshark却总是无法抓到相应的数据包. 今天早上,HQ的高工告诉我“wireshark在windows下无法抓取localhost数据包”,得使用其他工具. http://stackoverflow.com/questions/5847168/wireshark-localhost-traffic-capture you can capture on the loopbac

JVM自定义类加载器加载指定classPath下的所有class及jar

一.JVM中的类加载器类型 从Java虚拟机的角度讲,只有两种不同的类加载器:启动类加载器和其他类加载器. 1.启动类加载器(Boostrap ClassLoader):这个是由c++实现的,主要负责JAVA_HOME/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. 2.其他类加载器:由java实现,可以在方法区找到其Class对象.这里又细分为几个加载器 a).扩展类加载器(Extension ClassLoader):负责用于加载JAVA_HOM

Java扫描classpath指定包路径下所有class

在写框架时 经常需要扫描classpath指定包路径下带有某个Annotation的类,自己整理了一下 封装成一个工具类了,供大家参考. 源代码ClassPathResourceScanner.java 如下: package com.bytebeats.jupiter.ioc; import com.bytebeats.jupiter.util.ClassHelper;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import

CentOS下lamp的实现之rpm包构建discuz论坛

一.安装需要用的软件 [[email protected] ~]# yum install php php-gdphp-xml php-mysql mysql mysql-server httpd –y 启动mysql和httpd并设置为2.3.4.5级别自动启动 [[email protected] ~]# service mysqld start [[email protected] ~]# chkconfig mysqld on [[email protected] ~]# service