Compare the two javadocs: @java.lang.annotation.Native: "Indicates that a field defining a constant value may be referenced from native code. The annotation may be used as a hint by tools that generate native header files to determine whether a header file is required, and if so, what declarations it should contain."
@javax.tools.annotation.GenerateNativeHeader: "An annotation used to indicate that a native header file should be generated for this class. Normally, the presence of native methods is a sufficient indication of the need for a native header file. However, in some cases, a class may contain constants of interest to native code, without containing any native methods." Both are hints for tools. Both discuss header files. So why divide them up? I think they should be in one package together. Personally, I think both are better suited to the javax.tools.annotation package. I just wanted to point out the division doesn't make all that sense. Paul