71

我有一个动态的 Web 项目,我正在将一个 jsp/servlet 应用程序从 JRun 迁移到 Tomcat。

我收到错误: com.ibm.ivj.eab.dab.DatastoreJDBC无法解析为类型。

我将*.class文件放在一个com/ibm/ivj/eab/dab文件夹中(正是我找到它们的方式)。我尝试创建一个 jar 文件并通过“添加外部 Jar”将其添加到构建路径,我还尝试添加一个“外部类文件夹”并指向包含相关“com”目录的文件夹。

尽管如此,错误仍然存​​在。奇怪的是,如果我开始输入包名 eclipse 实际上会为我自动完成课程!(如下图所示)。任何想法将不胜感激。也许这些类是为更旧的 java 版本编译的,这会造成麻烦吗?也许我需要做一些事情来确保这些类最终出现在 WEB-INF/lib 目录中?

一世在此处输入图像描述

4

17 回答 17

59

此外,如果您使用的是 mavenised 项目,请尝试通过单击 Alt+F5 来更新您的项目。或者右键单击应用程序并转到 maven /update 项目。

它构建您的所有组件并解决是否存在任何导入错误。

于 2014-10-28T07:35:34.510 回答
54
  1. 右键单击您的项目名称。

  2. 单击Properties

  3. 单击Java Build Path

  4. 点击Add Class Folder

  5. 然后选择你的班级。

或者,Add Jars尽管您声称您尝试过,但应该可以工作。

另外,“您是否尝试过将其关闭然后重新打开”?(重新启动 Eclipse)。

于 2013-04-03T18:16:08.280 回答
16

要解决错误“...无法解析为类型..”,请执行以下操作:

  1. 右键单击类并选择“构建路径-->排除”
  2. 再次右键单击该类并选择“构建路径-->包含”

这个对我有用。

于 2016-04-21T10:51:25.090 回答
7

项目 -> 清理

至少有时足以解决问题。

于 2018-03-12T18:47:53.973 回答
6

有两种方法可以解决“无法解析为类型”的问题:

  1. 对于非 maven 项目,在文件夹中手动添加 jar 并将其添加到 java 构建路径中。这将解决编译错误。
  2. 对于 maven 项目,右键单击该项目并转到 maven -> 更新项目。选择您遇到编译错误的所有项目,并选中“强制更新快照/版本”。这将更新项目并修复编译错误。
于 2018-05-03T06:37:44.783 回答
5

对于 Maven 用户:

  • 右键单击项目
  • 马文
  • 更新项目
于 2017-03-17T15:44:48.503 回答
3

简单的解决方案:
转到

项目属性 -> java builder path -> maven -> find c3p0-0.9.5.2.jar

并查看文件存储在本地存储库中的位置,然后转到该位置并手动删除存储库。

G

于 2018-09-17T21:38:33.053 回答
2
  • 右键单击项目>属性
  • Java 构建路径>添加类文件夹
  • 选择bin文件夹
  • 点击确定
  • 切换顺序和导出选项卡
  • 选择新添加的bin路径上
  • 单击应用按钮

在此处输入图像描述

于 2017-07-28T18:43:46.010 回答
0

通过将 jar 放入 WEB_INF/lib 来解决问题。

于 2016-09-08T15:09:44.080 回答
0

复制jar文件将解决。如果您有任何机会从任何教程中复制代码,请确保类名的拼写正确...例如,我从其中一个教程中复制了一个代码,该教程在 S cap 中有 solr。Eclipse 不断抛出错误,我也做了一些谷歌搜索......一切都很好,我花了 30 分钟才意识到上限小问题。相信这会对某人有所帮助

于 2017-05-22T11:57:40.563 回答
0

对于许多新用户,如果您想使用包中的所有类,请不要忘记在导入语句后添加星号 (*)....例如

import java.io.*;

public class Learning 
{
    public static void main(String[] args) 
    {
        BufferedInputStream sd = new BufferedInputStream(System.in);
            // no error
    }
}

==================================================== ===============

import java.io;

public class Learning 
{
    public static void main(String[] args) 
    {
        BufferedInputStream sd = new BufferedInputStream(System.in);
            // BufferedInputStream cannot be resolved to a type error
    }
}
于 2017-08-18T10:38:43.420 回答
0

解决方案:1.项目->构建路径->配置构建路径

2.在左侧菜单中选择Java Build path,选择“Source”

3.在项目下选择包括(全部),然后单击确定

原因:这个问题可能是因为你可能已经删除了项目的 CLASS 文件或依赖项

于 2018-03-20T14:20:58.467 回答
0
Project -> Build Path -> Configure Build Path
Select Java Build path on the left menu, and select "Source"
 click on Excluded and then Include(All) and then click OK
    Cause : The issue might because u might have deleted the CLASS files 
 or dependencies on the project

对于 Maven 用户:

右键单击项目

马文

更新项目

于 2018-06-04T10:56:02.553 回答
0

首先,您需要通过添加以下内容来更新 pom.xml

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.1.6.RELEASE</version>
    </dependency>

1]右键单击您的项目名称。

2]单击属性。

3]单击Java构建路径。

4] 检查订单和导出表中的“Maven 依赖项”。

就我而言,以前没有启用它。因此,当我启用它时,我的 @GetMapping 注释工作正常..

于 2018-11-22T17:04:32.267 回答
0

此外,还有针对 IvyDE 用户的解决方案。右键项目 -> Ivy -> resolve 需要在 build.properties 中设置 ivy.mirror 属性

于 2019-04-03T11:02:06.713 回答
0

我刚刚关闭了所有文件并重新打开它们,瞧!!!希望这对将来的某人有所帮助;)

于 2020-07-08T11:35:21.990 回答
0

下载 servlet-api.jar 文件并将其粘贴到 WEB-INF 文件夹中即可使用

于 2021-01-06T06:41:47.073 回答