【问题标题】:Where is javax.annotationjavax.annotation 在哪里
【发布时间】:2014-04-30 14:57:28
【问题描述】:

好的,所以这可能是一个 NooB 问题(我更喜欢 C++),但我迷失在 Java 森林及其框架森林中......

我正在尝试研究 Eclipse RCP 开发。为此,我正在关注这个著名的教程: http://www.vogella.com/tutorials/EclipseRCP/article.html

在第 15 步,我需要添加以下依赖包以导入我的包中。 javax.annotation javax.injection

问题是我无法选择这些(它们不在选择列表中) 我确实有 javax.el javax.servlet.* 和 javax.xml.*

看着 http://docs.oracle.com/javase/7/docs/api/overview-summary.html 建议这应该是标准 java 的一部分。

我错过了什么明显的错误?

【问题讨论】:

    标签: java eclipse eclipse-rcp


    【解决方案1】:

    依赖包括版本:

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

    见:http://mvnrepository.com/artifact/javax.annotation/javax.annotation-api

    或者对于newerjakarta.annotation:

    <dependency>
       <groupId>jakarta.annotation</groupId>
       <artifactId>jakarta.annotation-api</artifactId>
       <version>1.3.5</version>
    </dependency>
    

    见:https://mvnrepository.com/artifact/jakarta.annotation/jakarta.annotation-api

    Java 通用注释模块 java.xml.ws.annotation 在 Java 版本 9 中已被弃用,并在 Java 版本 11 中被删除。如果这导致问题,您可以尝试添加 javax.annotation。

    Java 8 的 Javadocs 可以在这里找到: http://docs.oracle.com/javase/8/docs/api/javax/annotation/package-summary.html

    【讨论】:

    • 我尝试从这里导入“guava”库:github.com/google/guava,但我不断收到有关“javax.annotation*”缺失的错误,即使我已将编译器设置为是 Java 的 8 版。怎么还是不见了?你能帮忙吗?
    【解决方案2】:

    您的评论表明这是用于 Guava,因此您需要 the JSR305 library,它扩展了 javax 包。

    2020 年更新:请注意,this library breaks the Oracle licensing agreement 和 Guava 已移至 checkerframework's Nullable annotation

    【讨论】:

      【解决方案3】:

      不确定这是否仍然相关,但对于 Java 8,我必须添加以下两个 Maven 依赖项才能使 javax.annotation.concurrent.ThreadSafe 工作:

          <dependency>
              <groupId>javax.annotation</groupId>
              <artifactId>javax.annotation-api</artifactId>
              <version>1.3.2</version>
          </dependency>
      
          <dependency>
              <groupId>com.google.code.findbugs</groupId>
              <artifactId>jsr305</artifactId>
              <version>3.0.0</version>
          </dependency> 
      

      【讨论】:

      • jsr305 依赖成功了!感谢您的提示。
      【解决方案4】:

      在 Java 版本 >= 6 中,您不需要显式添加它们。
      它们是 JDK 的一部分。只是尝试跳过添加它们,也许
      说明列表已过时。

      在 Java 6 之前,您需要添加这个 jar,我认为:jsr250-api-1.0.jar

      http://central.maven.org/maven2/javax/annotation/jsr250-api/1.0/

      http://download.java.net/maven/2/javax/annotation/jsr250-api/1.0/

      【讨论】:

        猜你喜欢
        • 2012-08-31
        • 2013-10-02
        • 2012-07-25
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 2019-11-13
        • 2012-10-05
        • 1970-01-01
        相关资源
        最近更新 更多