简体   繁体   中英

Where is javax.annotation

Ok, so this is probably a NooB question (I'm more of a C++ guy), but I'm lost in the java woods and its frameworks forests...

I'm trying to look into eclipse RCP development. For that I'm following this well-known tutorial: http://www.vogella.com/tutorials/EclipseRCP/article.html

At step 15 I need to add the following dependency packages to import in my bundle. javax.annotation javax.injection

The problem is that I cannot select these (they are not in the selection list) I do have javax.el javax.servlet.* and javax.xml.*

Looking at http://docs.oracle.com/javase/7/docs/api/overview-summary.html suggests that this should be part of the standard java.

What obvious mistake am I missing?

The dependency including version:

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

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

Or for the newer jakarta.annotation :

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

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

The Java Common Annotations Module java.xml.ws.annotation was deprecated in Java version 9 and was removed in java version 11. If this leads to a problem you could try to add javax.annotation.

The Javadocs for Java 8 can be found here: http://docs.oracle.com/javase/8/docs/api/javax/annotation/package-summary.html

Your comment indicates this is for Guava, so you want the JSR305 library , which extends the javax package.

2020 Update : Note that this library breaks the Oracle licensing agreement and Guava has since moved to checkerframework's Nullable annotation .

Not sure if this is still relevant, but for Java 8, I had to add the two following Maven dependencies in order to get javax.annotation.concurrent.ThreadSafe to work:

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

Javax annotations include in this dependency. This is latest version at the moment.

For maven

<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>

For gradle

compile('com.google.code.findbugs:jsr305:3.0.2')

在此处输入图像描述

In Java version >= 6, you should not need to add them explicitly.
They are part of the JDK. Just try to skip adding them, maybe
the list of instructions is outdated.

Before Java 6, you would have needed to add this jar, I think: 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/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM