sun.* 与 com.sun.* 之间的差异

Sag*_*gar 4 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>
Run Code Online (Sandbox Code Playgroud)

And*_*ert 5

一些com.sun.*类是实际的外部 API,可以使用。关键是检查官方 Javadoc 以查看您要使用的类是否列为 API,而不是标记@Deprecated或任何此类。

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

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

com.sun.*如果 API 不是 JDK 内部的或标记为弃用/删除,则使用API并没有本质上的错误。