sun。*与com.sun之间的区别*

时间:2019-04-22 18:12:30

标签: java dependencies java-9 java-11

我最近从Java 8迁移到Java 11。 为jax.ws

我必须在我的pom.xml中添加以下外部依赖性,因为它在Java 11中不再可用。但是,我遇到了一些争论,即不应使用com.sun.*包类,并且如果可能。是sun.*还是com.sun.*?如果后者也成立,那么最​​好的替代方法是什么?

还有一件事,该依赖关系不是我的代码直接使用的,而是由我的其他依赖关系之一引用的。

    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.2.10</version>
    </dependency>

1 个答案:

答案 0 :(得分:4)

某些com.sun.*类是实际的外部API,可以使用。关键是检查官方Javadoc,以查看您要使用的类是否已列为API,并且未标记为@Deprecated或此类标记。

这是要检查的官方javadoc页面: https://docs.oracle.com/en/java/javase/11/docs/api/index.html

通常,sun.* API指早于反向DNS软件包命名约定的一些最古老的Java API(例如sun.misc.Unsafe)。大多数原始sun.* API都已被删除,升级为官方javax.* API或重命名为更合适的com.sun.*域。

使用com.sun.* API并不是天生的错误,只要该API不是JDK内部的或标记为不推荐使用/删除的。