...
Unsupported API (not for use) | Supported APIs (please use instead) | Note |
---|---|---|
core-libs | ||
sun.io | java.nio.charsets @since 1.4 | |
sun.misc.BASE64Decoder, sun.misc.BASE64Encoder, | java.util.Base64 @since 8 | See http://openjdk.java.net/jeps/135 |
sun.misc.ClassLoaderUtil | java.net.URLClassLoader.close() @since 7 |
|
sun.misc.Cleaner | java.lang.ref.PhantomReference @since 1.2 | JDK-6417205 may help with the resource issues that can arise when mapped byte buffers are not unmapped in a timely manner. Libraries accessing sun.misc.Cleaner have to be fixed as direct byte buffer no longer uses sun.misc.Cleaner class; instead jdk.internal.misc.Cleaner.
See JDK-6685587 and JDK-4724038 |
sun.misc.Service | java.util.ServiceLoader @since 1.6 | |
sun.misc.Timer | java.util.Timer @since 1.3 | |
sun.misc.Unsafe | sun.misc.Unsafe consists of a number of use cases. The following features are identified to provide support in the future releases:
| In progress for JDK 9:
|
sun.reflect.Reflection.getCallerClass | java.lang.StackWalker::getCallerClass @since 9 | See JDK-8043814 (Stack Walking API) |
sun.util.calendar.ZoneInfo | java.util.TimeZone or java.time API @since 8 | |
security-libs | ||
sun.security.action.* | java.security.PrivilegedAction to call System.getProperty or other action @since 1.1 | AccessController.doPrivileged( |
sun.security.krb5.* | Some provided in com.sun.security.jgss javax.security.auth.kerkeros.EncryptionKey @since 1.9 javax.security.auth.kerkeros.KerberosCredMessage @since 1.9 javax.security.auth.kerberos.KerberosTicket.getSessionKey() @since 1.9 | If internal classes are used to get the session key of Krb5Context, we now have ExtendedGSSContext for this purpose. JDK-8043071 resolved in JDK 9 b25 |
sun.security.util.SecurityConstants | java.lang.RuntimePermission, java.net.NetPermission, or specific Permission class @since 1.1 | |
sun.security.util.HostnameChecker | javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm("HTTPS" or "LDAPS") can be used to enabled hostname checking during handshaking javax.net.ssl.HttpsURLConnection.setHostnameVerifier() can be customized hostname verifier rules for URL operations. | See also JDK-7192189 RFE to support the new endpoint identification. |
sun.security.x509.* | javax.security.auth.x500.X500Principal @since 1.4 | JDK-8056174 defines jdk.security.jarsigner.JarSigner API in JDK 9. This API can also be used to generate self-signed certificates. |
com.sun.org.apache.xml.internal.security | javax.xml.crypto @since 1.6 | |
com.sun.net.ssl.** | javax.net.ssl @since 1.4 | |
security provider implementation class such as
| java.security.Security.getProvider(NAME) @since 1.3 where NAME is the security provider name such as "SUN", "SunJCE". | In general, you should avoid depending on a specific provider as it may not be available on other Java implementations. See Oracle security providers documentation for more rationale. |
sun.security.provider.PolicyFile() or sun.security.provider.PolicyFile(URL) | java.security.Policy.getInstance("JavaPolicy", new java.security.URIParameter(uri)); @since 1.6 | |
client-libs | ||
java.awt.peer and java.awt.dnd.peer | Instead of doing: if (c.getPeer() != null) { .. } could be replaced with: if (c.isDisplayable()) { ... } To test if a component has a LightweightPeer, use: public boolean isLightweight() ; @since 1.2 To obtain the color model of the component comes from the peer, instead of doing: getPanel().getPeer().getColorModel()
| java.awt.peer.* and java.awt.dnd.peer.* types are encapsulated. API reference to java.awt.peer.* and java.awt.dnd.peer.* types are removed in JDK 9. See JDK-8037739 and awt-dev discussion |
com.sun.image.codec.jpeg.** sun.awt.image.codec | javax.imageio @since 1.4 | See JDK-6527962 |
com.apple.eawt | java.awt.Desktop @since 9 | Seehttp://openjdk.java.net/jeps/272 |
JDBC | ||
com.sun.rowset.** | javax.sql.rowset.RowSetProvider @since 7 | |
JAXP | ||
org.w3c.dom.{html, css, stylesheets} | org.w3c.dom.{html, css, stylesheets} APIs are JDK supported APIs @since 9. |
JDK-8042244 resolved in JDK 9 b62 |
org.w3c.dom.xpath | org.w3c.dom.xpath API is now JDK supported API @since 9 | JDK-8042244 resolved in JDK 9 b62 JDK-8054196 for XPath support any API resolved in JDK 9 b49 |
com.sun.org.apache.xml.internal.resolver.** | javax.xml.catalog @since 9 | See JDK-8023732 (XML Catalog API) |
org.relaxng.datatype | org.relaxng.** will be repackaged in JDK 9. Users should include the org.relaxng.** types in the classpath. | See JDK-8061466 |
Others | ||
com.sun.tools.javac.** | javax.tools, javax.lang.model @since 1.6 com.sun.source.* @since 1.6 | com.sun.tools.javac.Main is a supported API. |
jdk.nashorn.internal.ir.** | JEP 236 Parser API for Nashorn | JDK-8048176 (Nashorn Parser API) resolved in JDK 9 b55 |