javax.annotation 在哪里
Posted
技术标签:
【中文标题】javax.annotation 在哪里【英文标题】:Where is javax.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 的一部分。
我错过了什么明显的错误?
【问题讨论】:
【参考方案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/
【讨论】:
以上是关于javax.annotation 在哪里的主要内容,如果未能解决你的问题,请参考以下文章
Resource注解无法导入依赖使用javax.annotation的注解类
proguard 注意:库类的重复定义 [javax.annotation.PostConstruct]
导入 javax.annotation.Resource 无法解析
如何解决 java.lang.NoClassDefFoundError: javax/annotation/Generated?