刪除功能和選項
本節(jié)介紹在Java SE 11和JDK
11中刪除的API卷拘,功能和選項。此處描述的API是隨Oracle JDK提供的API鞋屈。 它包括Java SE 11平臺的完整實現(xiàn)和其他Java API寨闹,以支持Java應(yīng)用程序的開發(fā),調(diào)試和監(jiān)視指么。 關(guān)于Java SE 11和JDK 11中的重要增強功能和新功能的另一個信息來源是Java SE 11(18.9)(JSR 384)平臺規(guī)范酝惧,該規(guī)范記錄了Java SE 10和Java SE 11之間對規(guī)范的更改。本文檔 包括已刪除的API的標(biāo)識和此處未描述的功能伯诬。 下面的描述還可能標(biāo)識遷移到JDK 11時可能遇到的潛在兼容性問題晚唇。有關(guān)在JDK 11中關(guān)閉的CSR列表,請參閱已批準(zhǔn)用于JDK 11的CSR盗似。
client-libs
?刪除com.sun.awt.AWTUtilities類
在JDK 10(JDK-8187253)中哩陕,不推薦使用com.sun.awt.AWTUtilities類,而forRemoval = true赫舒。此類在JDK中未使用悍及,已在此版本中刪除。
client-libs/2d
?從Oracle JDK中刪除Lucida字體
Oracle JDK不再提供任何字體接癌,完全依賴于操作系統(tǒng)上安裝的字體心赶。
這意味著來自JDK的應(yīng)用程序不再提供Bigelow&Holmes Lucida系列(Lucida Sans,Lucida Bright和Lucida打字機)中的字體扔涧。
如果應(yīng)用程序依賴于JDK中提供的字體园担,則可能需要更新它們。
如果系統(tǒng)管理員正在運行依賴于JDK中提供的字體而不是系統(tǒng)字體包的Java服務(wù)器應(yīng)用程序枯夜,則在安裝系統(tǒng)字體包之前弯汰,應(yīng)用程序可能無法運行。
client-libs/java.awt
?刪除appletviewer啟動器
appletviewer工具在JDK
9中已棄用(請參閱JDK-8074165)湖雹,并在此版本中已刪除咏闪。
client-libs/javax.imageio
?OracleJDK的javax.imageio
JPEG插件不再支持帶alpha的圖像
以前,Oracle JDK使用廣泛使用的IJG JPEG庫的專有擴展來提供可選的色彩空間支持摔吏。這用于支持PhotoYCC和具有讀取和寫入的alpha分量的圖像鸽嫂。 Oracle JDK 11中已刪除此可選支持。除非先前由早期版本的Oracle JDK編碼征讲,否則不可能以任何這些格式遇到編碼的JPEG圖像据某。但是,如果遇到它們诗箍,解碼現(xiàn)在將失敗并出現(xiàn)異常癣籽。使用Alpha通道編寫圖像也會失敗,但會出現(xiàn)異常滤祖。最可能出現(xiàn)問題的方案是不知道他們依賴這種支持的應(yīng)用程序筷狼。如果直接調(diào)用ImageWriter或使用Image I / O便捷方法,則可能會失敗并出現(xiàn)異常匠童。 write()方法現(xiàn)在將返回false埂材,這意味著它不會寫入圖像。
精心編寫的應(yīng)用程序應(yīng)檢查這些方案汤求,這將緩解這種情況俏险。請注意严拒,OpenJDK從未擁有此可選的專有支持。它總是失敗并在這些場景中生成異常竖独。
有關(guān)不再支持的內(nèi)容的詳細(xì)信息糙俗,請參閱Java Image I / O JPEG元數(shù)據(jù)規(guī)范中的可選顏色空間支持:https://docs.oracle.com/javase/10/docs/api/javax/imageio/metadata/doc-files/jpeg_metadata.html#color
core-libs
?刪除sun.misc.Unsafe.defineClass
sun.misc.Unsafe.defineClass類已被刪除。 用戶應(yīng)該使用Java SE 9中添加的公共替換java.lang.invoke.MethodHandles.Lookup.defineClass预鬓。有關(guān)更多詳細(xì)信息,請參閱Java文檔:
https://docs.oracle.com/javase/9/docs/api/java/lang/invoke/MethodHandles.Lookup.html#defineClass-byte:A-
core-libs/java.lang
?刪除Thread.destroy()和Thread.stop(Throwable)方法
Thread.destroy()和Thread.stop(Throwable)方法已被刪除赊颠。 它們已被棄用于多個Java SE版本格二。從未實現(xiàn)Thread.destroy()方法,并且自Java SE 8以來Thread.stop(Throwable)方法一直無法運行竣蹦。沒有代碼應(yīng)該依賴于這兩種方法的行為; 但是顶猜,任何使用這些方法的代碼都會導(dǎo)致編譯錯誤。 緩解是從源代碼中刪除對這些方法的引用痘括。 請注意长窄,無參數(shù)方法Thread.stop()不受此更改的影響。
core-libs/java.nio
?刪除sun.nio.ch.disableSystemWideOverlappingFileLockCheck屬性
屬性sun.nio.ch.disableSystemWideOverlappingFileLockCheck已被刪除纲菌。因此挠日,也消除了與舊鎖定方法的兼容性。
JDK 6引入了系統(tǒng)屬性sun.nio.ch.disableSystemWideOverlappingFileLockCheck來控制文件鎖定行為翰舌。具體來說嚣潜,該屬性用于啟用對JVM范圍文件鎖定的抑制,并提供與JDK 1.4和JDK 5的兼容性椅贱。舊行為僅限于檢查僅在通道實例上獲得的鎖懂算,而不是在JVM范圍內(nèi)獲取的鎖,這就是實際指定庇麦。
核心庫/ java.util中:I18N
?刪除sun.locale.formatasdefault屬性
為了向后兼容性而在JDK 7中引入的系統(tǒng)屬性sun.locale.formatasdefault已被刪除计技。
core-svc/javax.management
?刪除JVM-MANAGEMENT-MIB.mib
已刪除通過SNMP JVM-MANAGEMENT-MIB.mib進行JVM監(jiān)視和管理的規(guī)范。 客戶可以使用JMX來監(jiān)視和管理正在運行的JVM山橄,并訪問標(biāo)準(zhǔn)的度量和操作集垮媒。
core-svc/tools
?刪除SNMP代理
jdk.snmp模塊已被刪除。
因此驾胆,使用-D選項或management.properties配置設(shè)置時涣澡,以下com.sun.management.snmp。*屬性為no-op丧诺。
com.sun.management.snmp.port
com.sun.management.snmp.trap
com.sun.management.snmp.interface
com.sun.management.snmp.acl
com.sun.management.snmp.acl.file
deploy
?刪除Java部署技術(shù)
現(xiàn)已刪除了在JDK 9中已棄用并標(biāo)記為在JDK 10中刪除的候選者的Java插件和Java WebStart技術(shù)入桂。 請注意,用于配置部署技術(shù)的Java控制面板也已與共享系統(tǒng)JRE(但不是服務(wù)器JRE)和JRE自動更新機制一起刪除驳阎。本白皮書中提供了更多詳細(xì)信息抗愁。
Infrastructure
?從Oracle JDK中刪除JMC
JDK捆綁包中不再包含Java
Mission Control(JMC)馁蒂。 獨立版本的JMC與Oracle JDK 11和OpenJDK 11兼容,可單獨下載蜘腌。
javafx/other
?從Oracle JDK中刪除JavaFX
JavaFX模塊已從JDK 11發(fā)行版中刪除沫屡。這些模塊包含在早期版本的Oracle JDK中,但不包含在OpenJDK版本中撮珠。 JavaFX模塊將作為JDK之外的單獨模塊集提供沮脖。 有關(guān)更多詳細(xì)信息,請參見本白皮書:http://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf
other-libs
?JEP320刪除Java EE和CORBA模塊
從Java SE Platform和JDK中刪除Java EE和CORBA模塊芯急。這些模塊在Java SE 9中已被棄用勺届,聲明的意圖是在將來的版本中刪除它們(JEP 320)。
已從Java SE 11和JDK 11中刪除以下模塊:
java.xml.ws(JAX-WS娶耍,以及相關(guān)技術(shù)SAAJ和Web服務(wù)元數(shù)據(jù))
java.xml.bind(JAXB)
java.activation(JAF)
java.xml.ws.annotation(Common Annotations)
java.corba(CORBA)
java.transaction(JTA)
java.se.ee(上面六個模塊的聚合器模塊)
jdk.xml.ws(JAX-WS工具)
jdk.xml.bind(JAXB工具)
將刪除jdk.xml.ws模塊中的以下JAX-WS工具:
WSGEN
的wsimport
將刪除jdk.xml.bind模塊中的以下JAXB工具:
schemagen
XJC
刪除了java.corba模塊中的以下CORBA工具:
IDLJ
ORBD
servertool
tnamesrv
更新了rmic編譯器以刪除-idl和-iiop選項免姿。因此,RMI編譯器將不再能夠生成IDL或IIOP存根和綁定類榕酒。
此外胚膊,由于刪除了Java EE和CORBA模塊,以下系統(tǒng)屬性不再適用:
com.sun.xml.internal.ws.client.ContentNegotiation
com.sun.xml.internal.ws.legacyWebMethod
javax.xml.bind.context.factory的
javax.xml.bind.JAXBContext
javax.xml.soap.MetaFactory
javax.xml.ws.spi.Provider
jaxb.fragment
jaxb.noNamespaceSchemaLocation
jaxb.schemaLocation
jaxb.formatted.output
jaxb.encoding
mail.mime.decodetext.strict
mail.mime.encodeeol.strict
mail.mime.foldencodedwords
mail.mime.foldtext
mail.mime.charset
saaj.mime.optimization
saaj.lazy.contentlength
saaj.lazy.contentlength
saaj.lazy.mime.optimization
有關(guān)拆卸和可能更換模塊的更多詳細(xì)信息想鹰,請參閱JEP 320紊婉。