导入javax.annotation。*在Eclipse的Java 10编译器中无法解析

时间:2018-08-01 09:56:57

标签: java spring eclipse spring-mvc

在我的计算机(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

,并且此{strong>错误也发生在

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

谢谢。

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

javax.annotation-api-1.3.2.jar添加到您的类路径中。它也可以与JDK 10一起使用。
要进一步了解替代方法,请访问下面的视频链接:

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

答案 3 :(得分:1)

发生这种情况是因为@PostConstruct和@preDestroy在Java 9及更高版本中已被弃用,因此最好不要使用它们,而应使用接口来解决此问题

答案 4 :(得分:0)

缺少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>