IDEA报错—— java: 程序包javax.servlet (.xxx)不存在

一、概述

本人使用的是最新的JDK17、Tomcat10,在导入旧版本java项目时出现如下图问题。在出现该问题我的第一反应是“项目结构(Project Structure)”中架包出了问题,检查后并未发现问题。查询了多种解决办法都无效。以下总结一下我所查到的解决方式(通用解决办法)以及最终解决我问题的办法(最终办法)。

程序包缺失

二、通用解决办法

有老哥解释说出现该问题是由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置。所以给了以下解决办法(该部分解决办法皆来源于网络)

1.添加环境变量

  1. 查找架包:servlet-api.jar地址:apache-tomcat-7.0.29\common\lib
  2. 将环境变量CLASSPATH值添加该地址值:.;…apache-tomcat-7.0.29\common\lib\servlet-api.jar
  3. 把common/lib下的servlet-api.jar拷贝到JDK/jre\lib\ext下
针对该解决方案,我出现的问题:
  • 我所使用的Tomcat版本该架包地址在:apache-tomcat-10.0.14\lib
  • 我所使用的JDK版本为JDK17,JDK11以上版本没有JRE,因此不存在jre\lib\ext根目录,为此我尝试了手动创建JRE目录1,再将该架包导入到ext文件内。依然没有解决问题。

2.直接添加架包

在项目结构中直接添加依赖,通过“+”符号直接添加servlet-api.jar,对于我Tomcat10版本该包所在目录是Tomcat安装目录下的lib文件夹下,早期版本在…\common\lib文件目录下。然后选择引用即可。
项目结构插入架包
而我引用的包都存在于我项目中的lib目录下,所以我只需要引用lib目录即可。而且一般如图中添加了Tomacat依赖就无需单独添加servlet包。因此该方式无用

三、最终解决办法

其他各色解决办法都无非以上两种办法的原理:修改环境变量以便IDEA识别、直接在IDEA添加缺失包解决问题。以上两种办法都没有解决我的问题,但并非无用。有需要的小伙伴可以尝试一下。实在解决不掉问题可以尝试安装低版本JDK再尝试以上方式。
我最终还是靠IDEA自动识别问题,添加java EE架包解决。如下图:
在这里插入图片描述


  1. 利用DOS在JDK目录下执行:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre ↩︎

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个问题通常是由于编译器无法找到所需的Java程序包而导致的。解决这个问题的方法包括: 1. 确认程序包的路径是否正确。检查程序包的路径是否正确,包括文件夹名称和文件名是否正确。 2. 确认程序包是否已经被正确地导入。在Java程序中,使用import语句导入程序包。确保import语句正确地引用了程序包。 3. 确认程序包是否已经被正确地安装。如果程序包没有被正确地安装,那么编译器就无法找到它。确保程序包已经被正确地安装到Java的classpath中。 4. 确认程序包是否已经被正确地编译。如果程序包没有被正确地编译,那么编译器就无法找到它。确保程序包已经被正确地编译,并且可以被正确地访问。 5. 确认程序包是否已经被正确地命名。程序包的名称应该与文件夹名称和文件名相匹配。确保程序包的名称已经被正确地命名。 ### 回答2: 当我们在使用Java编写程序时,有时会出现“程序包xxxx不存在”的错误。这个错误通常是由于缺少必要的依赖库或者类库引起的。解决这个问题的办法通常有以下几种: 1. 重新安装或更新缺失的依赖库:对于很多Java程序而言,缺失的依赖库指的是Java SDK或者其他框架所需的库文件。如果我们使用的是Java SDK,官网提供了下载页面,我们可以到官网下载最新的Java SDK并安装,然后在代码中引入相应的库就可以解决问题。如果是其他框架或者类库,可以到对应的官网下载相应的依赖包并安装。 2. 检查CLASSPATH环境变量:JAVA在编译或运行时需要找到相关的类或者库,而CLASSPATH环境变量可以告诉JAVA去哪里找。如果缺失了相关依赖库,就会出现“程序包xxxx不存在”的错误。我们可以通过环境变量设置工具或者在命令行中设置CLASSPATH环境变量,来让Java能够找到相应的依赖库。 3. 在IDE中导入所需的Class或Jar包:很多IDE都会提供依赖管理的功能,我们可以在IDE中直接导入所需的Class或Jar包,这样在编译或运行时就能够找到相应的依赖库,从而解决“程序包xxxx不存在”的错误。 总之,解决“程序包xxxx不存在”的问题,主要是要找到缺少的依赖库所在的位置,然后让Java能够找到这些依赖库。以上三种方法都可以解决这个问题,我们可以根据具体情况,选择相应的方法来解决这个问题。 ### 回答3: 在Java编程中,经常会遇到程序包不存在的问题。这个问题通常发生在导入某个包的时候,但该包在项目的类路径中不存在或不正确。这个问题可以通过以下几种方式解决: 1. 确认包路径 检查程序包的路径是否正确。如果路径不正确,即使包存在,Java编译器也无法找到它。可以查看路径是否正确,以及可能需要更改的任何大小写和拼写错误。 2. 检查依赖项 检查是否有缺少的依赖项或包。有些包可能被依赖在项目所引用的其他包中,因此如果缺少一个包,则可能导致其他包无法正常工作。可以使用依赖项解决工具如Maven和Gradle,以确保所有依赖项正确加载。 3. 刷新项目 在IDE中尝试刷新或重建项目。这将强制IDE重新编译代码并查看所有导入的程序包是否存在或引用正确。 4. 检查类路径 检查类路径是否正确,特别是如果在IDE中使用时。在Eclipse或IntelliJ IDEA等IDE中,可以在项目属性中查看类路径。确保在类路径的所有位置中都可以找到所需的包和类。 总之,确保路径正确,检查依赖项,刷新项目,以及检查类路径等方法,都是解决程序包不存在问题的有效方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值