【问题标题】:import javax.annotation.* cannot be resolved in Eclipse's Java 10 Compilerimport javax.annotation.* 无法在 Eclipse 的 Java 10 编译器中解析
【发布时间】:2019-01-08 20:30:33
【问题描述】:

在我的机器(Windows 10)中,Java有两个版本,Java 1.8(JRE和JDK)和Java 10(JRE和JDK)。

以前 IF 我将 Eclipse 设置为:

  • Java 编译器(JDK 兼容性):1.8
  • Java 构建路径(JRE 系统库):1.8

如果我使用以下 Spring 代码

import javax.annotation.PostConstruct;
...
...
...
@PostConstruct
...
...

一切正常正常。完全没有错误。

但是,如果我将 Eclipse 设置为:

  • Java 编译器(JDK 兼容性):10
  • Java 构建路径(JRE 系统库):10

现在,import 语句抛出错误消息:

The import javax.annotation.PostConstruct cannot be resolved

这个错误也会发生@PreDestroy注解上。

为什么会这样? Java 10 会发生什么?如果我仍然想保留 Java 编译器和 JRE 系统库版本到 Java 10,如何解决这个问题?

谢谢。

【问题讨论】:

  • 更改设置后是否在 Eclipse 中清理了项目?
  • 不,我不知道怎么做,我是初学者,怎么做?
  • 单击Project > Clean... 不确定它是否能解决您的问题,但当 Eclipse 找不到我的导入时,它在 99% 的情况下对我有用。
  • 我确实清理了它,但错误仍然存​​在

标签: java spring eclipse spring-mvc


【解决方案1】:

您可以将接口InitializingBeanDisposableBean 添加到您的类中。 然后你可以使用methods:afterPropertiesSet()destroy()

【讨论】:

    【解决方案2】:

    缺少Javax Annotation

    https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.3.2

    jar 或者依赖可以在这里找到。

    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>
    

    【讨论】:

      【解决方案3】:

      您需要通过 Window -->Preferences-->Java 将 Eclipse 指向 Java 8 并添加 JDK 1.8 bin 路径。完成后,项目将自动构建并解决问题。

      【讨论】:

        【解决方案4】:

        发生这种情况是因为 @PostConstruct 和 @preDestroy 在 java 9 之后已被弃用,所以最好不要使用它们,而是使用接口来解决这个问题

        【讨论】:

          【解决方案5】:

          javax.annotation-api-1.3.2.jar 添加到您的类路径中。它也适用于 JDK 10。
          要更清楚地了解替代方法,请通过以下视频链接:

          https://www.youtube.com/watch?v=jOYSRwwMLX8&list=PLzS3AYzXBoj9IBdtgXRSyZEwlU2QV-mGG&index=6

          【讨论】:

            【解决方案6】:

            您可以尝试将注解依赖添加到 pom.xml,以便它们可用于 Spring:

            <dependency>
              <groupId>javax.annotation</groupId>
              <artifactId>javax.annotation-api</artifactId>
              <version>1.3.2</version>
            </dependency>
            

            【讨论】:

            • 问题是这个项目没有使用 Maven,手动下载 jar,目前我想这样做,还有其他选择吗?这是一个 Eclipse 错误还是只是 Java 10 没有附带javax.annotation
            • 如果我理解正确的注释从 Java 9+ 中被弃用并且 Spring 默认看不到它。也许您可以尝试安装 Spring 5.1(似乎即使使用 Java 11 也可以运行 - github.com/spring-projects/spring-framework/wiki/…
            • 这仍然在 Tomcat 中引起了我的问题,所以我只需要回到 java 8 就解决了我的问题。
            猜你喜欢
            • 2013-07-18
            • 1970-01-01
            • 2011-12-20
            • 2019-10-22
            • 2021-04-08
            • 2021-04-30
            • 1970-01-01
            • 2019-09-26
            • 2016-04-04
            相关资源
            最近更新 更多