Java SE sürüm geçişi

Under the Java Kodu İncelemesi set of rules, Java SE Geçişi category contains rules for migrating from J2SE 1.4, J2SE 5.0, Java SE 6, Java SE 7, Java SE 8 or Java SE 11. Java geçiş hedefleri Java SE 8, 11 ve 17 'lerdir.

Sun to IBM Java uyumluluğu etkileri kategorisi, IBM Java Runtime Environment üzerinde olmayan Sun API ' larını yeni düzeye geçirmek için bir dizi kural sağlar. Mümkün olduğunda, kurallar kodun javax.net ya da com.ibm.net.ssl sınıflarını kullanacak şekilde geçirileceğini sağlar.

Seçilen belirli kurallar, uygulamanızın daha önce kullandığı kaynak Java Runtime Environment seçiminize ve geçiş yaptığınız WebSphere sürümünü seçmenize bağlıdır. Liberty için, hedefiniz olarak Java SE 8, 11 ya da 17 'yi seçebilirsiniz. WebSphere geleneksel için, Java SE 8 'e geçiş yapmak gerekir.

Olanaklı olan yerlerde hızlı düzeltmeler kullanılabilir. Hızlı düzeltmeleri olmayan kurallar kural ihlallerini işaretleyebilir; bu nedenle, kullanımlarını değerlendirebilir ve gerekirse kodu el ile geçirebilirsiniz.

J2SE 5.0 uyumluluğu etkileri

Tablo 1. J2SE 5.0 uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
JAXP API kullanım uyumluluğu olup olmadığını denetle Hayır

JRE 1.4.2 'de kullanılan JAXP API' larının JRE 5 'te kullanılanlarla ilgili uyumluluk sorunları olabilir. Bu kural, JAXP ile ilgili paketlerin içe aktarıldığını saptar ve böylece kullanımı kontrol edebilirsiniz.

JAXP EntityResolverolup olmadığını denetleyin.resolveEntity() kural dışı durum uyumluluğu Hayır

JAXP EntityResolver.resolveEntity(String, String) şimdi SAXException 'a ek olarak kural dışı durum (IOException) kural dışı durumu yayınladı. Bu kural eksik GÇ kural dışı durumu saptadı.

Yeni JAXP DOM API ' leri olup olmadığını denetle Hayır

Aşağıdaki arabirimlere eklenen yeni JAXP DOM API ' ları:

  • org.w3c.dom.Attr
  • org.w3c.dom.Document
  • org.w3c.dom.DOMImplementation
  • org.w3c.dom.Element
  • org.w3c.dom.Entity
  • org.w3c.dom.Node
  • org.w3c.dom.Text

Bu kural, bu arabirimlerin herhangi birini gerçekleştiren sınıfları saptar ve yeni arabirimlerin eklenebilmesi için bunları işaretler.

Java Nesnesi Diziselleştirme uyumluluğunu denetle Hayır

Serileştirme, Java 1.4 ve Java 5.0arasında tutarlı değil. This rule detects the classes that implement java.io.Serializable without a serialVersionUID field.

IBMJSSEFIPS sağlayıcı sınıflarına doğrudan gönderme yapma Hayır

IBMJSSEFIPS sağlayıcısı, IBMJSSE2 desteğinde yer alır. Önceki sağlayıcının ( com.ibm.fips.*) sınıflarına yönelik başvurular kaldırılmalıdır.

Bu kural, com.ibm.fips paketlerine yapılan herhangi bir başvuruyu belirler.

com.ibm.net.ssl paketlerinden API ' leri kullanma Evet

com.ibm.net.ssl paketindeki sınıflar ve arabirimler, javax.net.ssl paketindeki sınıflar ve arabirimler tarafından değiştirildi. Bu kural, com.ibm.net.ssl packages' e yapılan başvuruların kullanımını saptar.

Hızlı düzeltme, paket adlarını com.ibm.net.ssl - javax.net.sslolarak değiştirir.

Sun.* 'dan API' leri kullanmayın paketler Hayır

Some APIs in the sun.* packages changed in JRE 5 and have compatibility issues with JRE 1.4.2. Bu API ' ler, geliştiriciler tarafından kullanılmak üzere tasarlanmayalardır. Bu kural, sun.* paketlerine yapılan başvuruların kullanımını algılar.

JAXP 1.1 iç sınıflarını kullanmayın Hayır

İç JAXP sınıfları değiştirildi. Bu iç sınıfları bu paketlerde kullanmayın:

  1. org.apache.crimson.*
  2. org.apache.xml.*
  3. org.apache.xalan.*
  4. org.apache.xpath.*
  5. org.apache.xalan.xsltc.*

Bu kural, bu paketlerin kullanımını algılar ve bunları işaretler.

Dizgi hazır bilgilerinde JAXP 1.1 paket adlarını kullanmayın Hayır

Uygulama paketi adlarının bazıları, JAXP 1.1 ve JAXP 1.3arasında değişmektedir. Bu kural, dizgi hazır bilgilerinde kullanılan JAXP 1.1 paket adlarını algılar.

Kaldırılan IBMJSSE API ' lerini kullanmayın Hayır

In the conversion from IBMJSSE to IBMJSSE2 two of the JSSE classes were removed. Bu kural, com.ibm.jsse. KeyManagerFactoryParametersSpec ve com.ibm.jsse.SSLContextiçin yapılan başvuruların kullanımını belirler. com.ibm.net.ssl. KeyManagerFactoryParametersSpec , com.ibm.jsse. KeyManagerFactoryParametersSpec ' ye geçirildiğinden ve sonra kullanımdan kaldırıldığından, com.ibm.net.ssl. KeyManagerFactoryParametersSpec bu kuralla da algılanır.

Java için ayrılmış sözcük sıralı değer listesini kullanma Hayır

Java 5.0ile başlayarak, enum ayrılmış bir Java tipidir ve değişken adı olarak daha uzun süre kullanılamaz. Kodunuz enumadlı değişkenleri kullanıyorsa, bunların yeniden adlandırılması gerekir. Bu kural, enumadlı değişkenleri ve bağımsız değişkenleri algılar.

Bir dizgi değeri türetirken belirtik olarak BigDecimal toPlainString () yöntemini kullanın Hayır

BigDecimal toString() yöntemi önceki sürümlerden farklı şekilde davranır. J2SE 5.0 added toPlainString() to BigDecimal, which behaves like the toString() method in earlier versions. Bu kural, bir sınıftaki toString() yönteminin örtük kullanımını algılar.

toString() yöntemi yerine BigDecimal toPlainString () yöntemini kullanın Evet

BigDecimal toString() yöntemi önceki sürümlerden farklı şekilde davranır. J2SE 5.0 added toPlainString() to BigDecimal, which behaves like the toString() method in earlier versions.

Hızlı düzeltme toString - toPlainStringarasında değişir.

IBMJSSE2 Provider 'ı Kullanın Evet

IBMJSSE 'den IBMJSSE2' ye dönüştürmede, sağlayıcılar, IBMJSSEProvider ve JSSEProvider, IBMJSSEProvider2ile değiştirilir. Bu kural, com.ibm.jsse.IBMJSSEProvider ve com.ibm.jsse.JSSEProvider sınıflarına yönelik başvuruların kullanımını belirler.

Hızlı düzeltme, com.ibm.jsse2.IBMJSSEProvider2' a başvuruyu değiştirir.

Java SE 6 uyumluluğu etkileri

Tablo 2. Java SE 6 uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
EventHandlerçağrıları için kural dışı durum mantığının denetlenmesi Hayır

Java SE 6 'da, EventHandler oluşturucusu ve create() yöntemleri, boş olmayan değiştirgelerin aktarılmasını gerektirir. This rule flags the constructor and create() method calls so that you can verify your logic handles a NullPointerException properly.

Süre Denetimi ve XMLGregorianCalendar eşittir () uyumluluğu Hayır

Duration ve XMLGregorianCalendar equals () yöntemi kullanımını saptayın. Geçirilen parametre boş değerse, Java 6 şimdi false değerini döndürür. Kural dışı durum, NullPointerkural dışı durumu, önceden yayınlandı.

Java SQL arabirimlerinde yeni yöntemler olup olmadığını denetle Hayır

java.sql.Wrapper arabirimi, birden çok Java SQL arabirimi için bir üst arabirim olarak eklendi. When you move to Java 6, missing methods must be added to classes that implement the interfaces that added java.sql.Wrapper.

FileChannel lock () yöntemi için OverlappingFileLockException dosyasını denetleyin. Hayır

Java SE 6 'da, FileChannel.lock() yöntemi şimdi OverlappingFileLockException' i yayınlıyor. This rule flags the lock() method calls without a catch block for OverlappingFileLockException or without a throws declaration for OverlappingFileLockException on the method.

JMX ObjectName öğelerinde çift eğik çizgilinin kullanımını kaldırma Hayır

Çift eğik çizgi karakter dizgisinin ("//") kullanımını saptayın JMX 'te ObjectNames.

Java SE 7 uyumluluğu etkileri

Tablo 3. Java SE 7 uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
Boş bir TreeSet ekleme ve TreeMap put yöntemleri için bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural, java.util.TreeSet ya da java.util.TreeMapkullanımını işaretler. Kuralın yapılanışına bağlı olarak, bu sınıfların oluşturucusu ya da add () /put () yöntemleri işaretlenir. Java 7 'de bu yöntemler için yeni bir davranış eklenir.
AWT Kural Dışı Durum İşleyicisi için bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural, sun.awt.exception.handlerdizgi hazır bilgisini işaretler. Java 7 'de yeni bir kural dışı durum işleme mekanizması eklenir.
Check for a behavior change for File setReadOnly, setWritable and canWrite methods Hayır Bu kural java.io.File setReadOnly(), setWritable(boolean arg) ve setWritable(boolean arg, boolean user)yöntemlerini işaretler. Java 7 'de bu yöntemler için yeni bir davranış eklenir.
URLConnection, HttpURLConnection getInputAkımı yöntemi için bir davranış değişikliği olup olmadığını denetle Hayır Bu kural, URLConnection ya da HttpURLConnectionüzerindeki getInputStream() yöntemini işaretler. Bu yöntem, Java 7 'de yeni bir davranışa sahiptir.
DatagramChannel gönderme, alma ve bağlanma yöntemlerinde bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural işaretleri, Java 7 'de yeni bir davranışa sahip java.nio.channels.DatagramChannel send, receiveve connect yöntemlerine çağrı sağlar.
isLowerCase ve isUpperVaka yöntemlerinde bir davranış değişikliği olup olmadığını denetleyin. Hayır Bu kural, isLowerCase ve isUpperCase yöntemlerini işaretler. bu yöntemlerde bir davranış değişikliğinin uygulamanızı etkileyebileceği çok hafif bir şans var.
Yerel ayar getDefault yönteminde bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural işareti, yeni bir davranışa sahip olduğu için java.util.Locale getDefault() yöntemine çağrı sağlar.
MouseEvent getButton yönteminde bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural, yeni bir davranışa sahip olduğu için java.awt.event.MouseEvent getButton() yönteminin eşgörünümlerini işaretler.
ThreadGroup setMaxPriority yönteminde bir davranış değişikliği olup olmadığını denetle Hayır Bu kural, bir ThreadGroup nesnesindeki setMaxPriority yöntemini işaretler. Yöntem davranışı JDK 7 'de değiştirildi.
Araç Takımı getPrintİş yönteminde bir davranış değişikliği olup olmadığını denetle Hayır Bu kural, yeni bir davranışa sahip olduğu için java.awt.Toolkit getPrintJob(...) yönteminin eşgörünümlerini işaretler.
Pencere setBackground yönteminde bir davranış değişikliği olup olmadığını denetleyin Hayır Bu kural, yeni bir kural dışı durum yayınlayarak davranışı değiştiği için java.awt.Window setBackground() yöntemine çağrı atar.
TypeVisitor arabirimini gerçekleştiren sınıfları denetle Hayır Bu kural, javax.lang.model.type.TypeVisitor arabirimini gerçekleştiren sınıfların işaretlerini gösterir. Java SE 7 'de, bu arabirimin yeni bir yöntemi eklenmiştir.
JDBC arabirimlerinde yeni yöntemler olup olmadığını denetle Hayır Bu kural, yeni yöntemler ekleyen JDBC arabirimlerini uygulayan sınıfları saptar. Arabirimler arasında java.sql.Connection, java.sql.Driver, java.sql.Statementve javax.sql.CommonDataSourcebulunur.
java.lang.Throwable' te final olarak bildirilen yöntemler tanımlamayın Hayır

This rule detects class that extend java.lang.Throwable that implement methods addSuppressed and getSuppressed which were added as new Son methods in Java 7.

Path2D getPathYineleyici yöntemlerini geçersiz kılmayın Hayır Bu kural Path2D getPathIterator yöntemlerine işaret eder. Bu yöntemler şimdi Java 7 'de final olarak işaretlenir.
Kaldırılan sınıfı kullanmayın XSLTProcessorApplet Hayır Bu kural, org.apache.xalan.client.XSLTProcessorAppletsınıfı kullanımını algılar. Bu sınıf JDK 7 yayınından kaldırıldı.
LinkedHashMap.Entry sınıfını kullanmayın. Evet Bu kural işaretleri, artık Java SE 7 'de erişilemediği için java.util.LinkedHashMap.Entry sınıfının kullanımları gösterir.

Java SE 8 uyumluluğu etkileri

Java 8, Liberty ve WebSphere Application Server geleneksel V8.5.5.9 ve sonraki yayın düzeylerinde desteklenir.

Tablo 4. Java SE 8 uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
AWT odak geçiş anahtarları ayarlanırken kural dışı durumlardaki davranış değişikliği Hayır In Java 8, the java.awt.Component setFocusTraversalKeys and the java.awt.KeyboardFocusManager setDefaultFocusTraversalKeys methods throw ClassCastException instead of IllegalArgumentException if any passed keystroke object is not an AWTKeyStroke.
java.lang.String ve java.util.regex.Pattern bölme yöntemlerinde davranış değişikliği Hayır Java 8 'de, split yöntemlerinin davranışı, dönüş dizisinin başlangıcındaki boş String ' un kaldırılmasına neden olabilir.
Bazı diller için ay adı biçimlendirmesinde davranış değişikliği Hayır In Java 8, when formatting date-time values using the DateFormat and SimpleDateFormat classes, context-sensitive month names are supported for languages that have different date formatting and standalone forms of month names. You might see a difference in the month name returned in strings formatted by the DateFormat or SimpleDateFormat classes or by methods on the DateFormatSymbols class.
Çoğu Collection.removeAll ve Collection.retainAll somutlamalarında davranış değişikliği Hayır Java 8 öncesinde, Collection.removeAll(Collection) ve retainAll(Collection) ' ın çoğu somutlamaları false değerini döndürür ve kaynak grubunun kendisi boşsa, boş değerli bir parametreyi yoksayar. Java 8 'de, parametre olarak boş değer sağlanırsa, derlemler bir NullPointerException ' yi atar.
Genel olmayan arabirimler için yeni eşgörünüm yaratılmasında davranış değişikliği Hayır Java 8 'de, Proxy.getProxyClass ve Constructor.newInstance yöntemlerini kullanarak farklı bir pakette bulunan genel olmayan arabirimler için bir yetkili sunucu eşgörünümü yaratmak için bir kod değişikliği gerekir.
NumberFormat ve DecimalFormat biçim yöntemlerinde yuvarlama yönteminde davranış değişikliği Hayır Java 8 'de, NumberFormat ve DecimalFormat biçim yöntemlerinin yuvarlama davranışı, sayının ikili gösteriminin yuvarlağıyla eşleşecek şekilde değişir.
Sıfır değeri için BigDecimal stripTrailingZeros yöntemindeki davranış değişikliği Hayır Java 8 introduces a behavior change when java.math.BigDecimal stripTrailingZeros operates on a zero value with a nonzero scale.
Dinamik yetkili sunucu sınıflarının yapımında davranış değişikliği Hayır Java 8 'de, java.lang.reflect.Proxy(InvocationHandler) parametresi null ile çağrılıyor; bir NullPointerExceptionişlemi atılıyor. Java 8 öncesinde, oluşturucu bir yetkili sunucu döndürür; ancak, o yetkili sunucu üzerinde yapılan tüm yöntem çağrıları bir NullPointerException' yi atar.
TypeVisitor arabirimini gerçekleştiren sınıfları denetle Hayır Java 8, javax.lang.model.type.TypeVisitor arabirimine yeni bir yöntem ekledi. Bu kural, bu arabirimi uygulayan sınıfları işaretler.
DatagramPacket constructor with SocketAddress no longer declares SocketException Hayır In Java 8, java.net.DatagramPacket constructors were changed to remove the SocketException declaration. This rule flags java.net.DatagramPacket constructors that accept a java.net.SocketAddress argument when the constructors are within a try block that catches either a java.net.SocketException or its superclass java.io.IOException.
JAXP hizmet sağlayıcıları için sınıf yüklerken farklar Hayır Java 8, hizmet sağlayıcılar için sınıf yüklemeyi önceki sürümlerden farklı bir şekilde işleyen XML İşleme (JAXP) 1.6Java API 'sını içerir.
java.lang.Thread dur (java.lang.Throwable) devre dışı bırakıldı Hayır Java 8 'de, java.lang.Thread.stop(java.lang.Throwable) yöntemi devre dışı bırakılır.
MBean ve MXBean arabirimlerinin genel olması gerekir Evet Java 8, MBean ve MXBean yönetim arabirimlerinin genel olmasını gerektiren gereksinmeyi uygular. Genel olmayan arabirimlerin yönetim işlevselliğini açığa çıkarmasına izin verilmez. Bu belirtim gereksinimi, Java 7 ve önceki sürümlerde uygulanmadı.
java.util.concurrent.ConcurrentHashMapiçinde yeni yöntemler Hayır Java 8 'de, ConcurrentHashMap sınıfı 30 'un üzerinde yeni yöntem tanıttılar. java.util.concurrent.ConcurrentHashMap sınıfını genişletiyorsanız, sınıfınızın değişikliklere gereksinimi olabilir.
Yerel ayar hizmet sağlayıcısını seçmeye ilişkin mekanizma değiştirildi Hayır Java 8 'de, bir yerel ayar hizmet sağlayıcısını seçmenin mekanizması değişti. LocaleService(LocaleService) Sağlayıcısı sınıfındaki yeni bir yöntem, verili yerel ayarın desteklenip desteklenmediğini saptamaya olanak sağlar.

Java SE 11 uyumluluğu etkileri

Java 11, Liberty v19.0.0.1 ve sonraki yayın düzeylerinde desteklenir.

Tablo 5. Java SE 11 uyumluluk etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
Kullanımdan kaldırılan RMIIIOPServerImpl sınıfını kullanmaktan kaçının Hayır Bu kural, RMIIIOPServerImpl sınıfının kullanımını işaretler. Bu sınıf Java SE 11 'de kullanımdan kaldırıldı.
Varsayılan yerel ayar verilerinde davranış değişikliği Hayır Unicode Consortium 'ın Common Locale Data Repository (CLDR), Java 11 'deki varsayılan yerel veri olarak etkinleştirilir. Önceki yayınlarda, varsayılan olarak COMPAT olarak bilinen JRE ' dir. Tarih, saat ve sayı biçimlendirme gibi ülke değerine duyarlı hizmetler kullanan kod, CLDR ülke değeri verisiyle farklı sonuçlar üretebilir.
Class.getAnnotation() yöntemi çağrılırken kural dışı durumlardaki davranış değişikliği Hayır Java 11 'de, ek açıklamanın eksik bir sınıfa gönderme yapan bir dizi değeri varsa, java.lang.Class.getAnnotation() yöntemi, java.lang.ArrayStoreException yerine java.lang.TypeNotPresentException değerini atar.
Davranış değişikliği java.util.concurrent.ThreadPoolExecutoriçinde değişir. finalize () yöntemi Hayır Java 11 'de, java.util.concurrent.ThreadPoolExecutor.finalize() yöntemi artık iş parçacığı havuzunu kapatmaz.
Davranış değişikliği java.lang.invoke.MethodHandlesiçinde değişir. filterArguments yöntemi Hayır Bu kural, java.lang.invoke.MethodHandles.filterArguments yöntemini kullanan uygulamaları işaret eder.
javax.management.MBeanOperationInfo oluşturucuda davranış değişikliği Hayır Bu kural, sağlanan etki INFO, ACTION, ACTION_INFO ya da UNKNOWN değilse, javax.management.MBeanOperationInfo oluşturucusunu kullanan uygulamaları işaretler.
Ham tiplerle java.xml API yöntemlerinde davranış değişikliği Hayır Java 11 'de, ham tipler içeren yöntem bildirimlerini içeren java.xml API ' ları tip değiştirgesi eklemek için güncellenmiştir.
Selector select ve selectNow yöntemlerinde bir davranış değişikliği olup olmadığını kontrol edin Hayır Bu kural, java.nio.channels.Selector.select() ve java.nio.channels.Selector.selectNow() yöntemlerini işaretler. Yöntem davranışı JDK 11 'de değiştirildi.
G/Ç kanallarına ilişkin engelleyici ve engelleyici olmayan kod yollarının ayrılmasına ilişkin davranış değişikliklerini kontrol edin Hayır Java 11 'de, başarımı ve güvenilirliği artırmak için G/Ç kanalları için ayrı bloklama ve engelleyici olmayan kod yolları oluşturulmuştur. Bu kural, davranış değişikliğini etkilemiş olabilecek API çağrılarını işaretler.
Check for configuration changes related to the com.ibm.security.auth.module. Krb5LoginModule sınıfı Hayır Bu kural, Java 11 'e geçiş sırasında yapılanış değişiklikleri gerektirebilecek com.ibm.security.auth.module.Krb5LoginModule ile ilgili sınıflara yönelik herhangi bir başvuruyu işaret eder.
Pack200.Packer ve Pack200.Unpacker arabirimleri Hayır addPropertyChangeListener ve removePropertyChangeListener artık Java 11 'deki Pack200.Packer ve Pack200.Unpacker arabirimlerinde tanımlanmaz.
com.sun.image.codec.jpeg paketindeki API ' leri kullanmayın Hayır com.sun.image.codec.jpeg API, Java SE 11 'de kullanılamaz.
Do not use APIs from the com.sun.xml.internal.bind.* paketler Hayır com.sun.xml.internal.bind.* paketlerindeki API ' ler artık Java SE 11 'de kullanılabilir değil.
Sun.* 'dan API' leri kullanmayın paketler Hayır sun.* API 'leri desteklenmemektedir, JDK' nin dahili API ' leri ve herhangi bir zamanda gidebilir.
javax.security.auth.Policy sınıfını kullanmayın. Hayır javax.security.auth.Policy Sınıfı Java SE 11 'de kullanılamaz. Bu kural, javax.security.auth.Policy Sınıfı ile ilgili herhangi bir başvuruyu işaret eder.
Kaldırılan com.sun sınıflarını kullanmayın Hayır Bu kural, Java SE 11 'de mevcut olmayan com.sun sınıflarını işaretler.
Kaldırılan runFinalizersOnExit yöntemlerini kullanma Hayır java.lang.Runtime.runFinalizersOnExit ve java.lang.System.runFinalizersOnExit yöntemleri Java SE 11 'den kaldırılmıştır.
com.ibm.security.auth.moduleadlı modülü kullanmayın. Krb5LoginModule sınıfı Hayır com.ibm.security.auth.module.Krb5LoginModule sınıfı Java SE 11 'de kullanılamaz.
com.sun.xml.internal.bind.v2kullanmayın. ContextFactory sınıfı Evet com.sun.xml.internal.bind.v2.ContextFactory artık Java SE 11 'de kullanılamaz.
getPeer yöntemini kullanmayın Hayır All methods in the Java SE API that return a class from the java.awt.peer package have been removed from Java 11. Bir eşdüzey henüz ayarlanmış olup olmadığını görmek için Component.isDisplayable() yöntemini kullanın. Bir bileşenin basit bir bileşen olup olmadığını test etmek için Component.isLightWeight() yöntemini kullanın.
java.lang.ref.Reference eşkopyalama yöntemini kullanmayın. Hayır java.lang.ref.Reference klon yöntemi artık Java 11 'de desteklenmiyor.
Netdoc URL protokolünü kullanma Hayır Netdoc protokol işleyicisi Java 11 'de kaldırıldı.
Kaldırılan com.sun.java.browser.plugin2.DOM ve sun.plugin.dom.DOMObject API ' leri Hayır com.sun.java.browser.plugin2.DOM ve sun.plugin.dom.DOMObject API ' leri Java SE 11 'de kullanılamaz.
Kaldırılan com.sun.java.swing.plaf.nimbus' ı kullanmayın. NimbusLookAndFeel ya da apple.laf.AquaLookAndFeel Swing LookAndHisse Hayır com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel ve apple.laf.AquaLookAndFeel Swing LookAndHisse, artık Java SE 11 içindeki javax.swing.UIManager.setLookAndFeel yöntemi tarafından desteklenmiyor.
Kaldırılan java.lang.Thread.destroy() ya da java.lang.Thread.stop(java.lang.Throwable) yöntemlerini kullanmayın Hayır java.lang.Thread.destroy() ve java.lang.Thread.stop(java.lang.Throwable) yöntemleri Java SE 11 'de kaldırılmıştır.
Kaldırılan javax.crypto.ExemptionMechanism' i kullanmayın. finalize () yöntemi Hayır javax.crypto.ExemptionMechanism.finalize() yöntemi Java SE 11 'den kaldırıldı.
Kaldırılan jdk.Exported ek açıklamasını kullanmayın. Hayır jdk.Exported ek açıklaması Java SE 11 'de kullanılamaz.
Do not use the removed methods addPropertyChangeListener or removePropertyChangeListener from LogManager Hayır addPropertyChangeListener ve removePropertyChangeListener yöntemleri, Java 11 'de java.util.logging.LogManager sınıfında kullanılamaz.
Kaldırılan Runtime.getLocalizedInputStream ve Runtime.getLocalizedOutputStream yöntemlerini kullanmayın. Hayır Runtime.getLocalizedInputStream ve Runtime.getLocalizedOutputStream yöntemleri Java SE 11 'den kaldırılmıştır.
Do not use the SecurityManager removed methods Hayır Bu kural işaretleri, Java SE 11 'de java.lang.SecurityManager sınıfından kaldırılan yöntemleri gösterir.
Java 11 sürüm numarası biçimi değişikliği Hayır Java 11, yeni bir sürüm numarası adlandırma kuralının başlangıcını gösterir. Sürüm numaraları biçimi 1.8 (Java 8) ile 11 (Java 11) arasında değişir.
FileInputAkımı ve FileOutputAkımı üzerindeki kaynak temizlemesini gözden geçir, kapatma yöntemini geçersiz kılıyor Hayır Bu kural, java.io.FileInputStream ve java.io.FileOutputStreamalt sınıflarındaki close() yöntemini işaretler.
Java sınıfı bağımlılık çözümleyici aracını (JDeps) çalıştır Hayır JDK, sınıf bağımlılıklarını analiz eden jdeps adlı bir komut satırı yardımcı programını gönderir. Araç, artık JDK 11 'de kullanılabilir olmayan jdk iç paketlerini tanımlamak için kullanılabilir.
java.awt.peer ve java.awt.dnd.peer paketlerine erişilemez. Hayır All methods in the Java SE API that refer to types defined in the java.awt.peer and java.awt.dnd.peer packages have been removed from Java 11. Daha önce bu paketlerde tanımlı bir tipi kabul eden ya da döndüren bir yöntemi çağıran kod artık Java 11 'de derlemiyor ya da çalıştırılıyor.
java.nio.channels.DatagramChannel.send() yöntemi, IllegalArgumentKural Dışı Durumu yerine AlreadyConnectedkural dışı durumunu atar. Hayır Adres java.nio.channels.DatagramChannel' a iletildiğinde. send (ByteBuffer,SocketAddress) yöntemi, bağlı olan adresten farklıdır; bu yöntem, Java SE 11 'de IllegalArgumentException yerine bir AlreadyConnectedException oluşturur.
java.nio.channels.Selector ve java.nio.channels.SelectableChannel sınıfları eşzamanlı iş parçacılarında güvenli bir şekilde kullanılabilir Hayır java.nio.channels.Selector ve java.nio.channels.SelectableChannel sınıfları, Java SE 11 'de güvenli bir şekilde güvenli bir şekilde iş parçacıklarına kullanılmak üzere güncellenmiştir.
java.transaction modülü JDK 11 'den kaldırıldı Hayır This rule flags applications that use packages in the javax.transaction module.
java.xml.bind ve java.activation modülleri, JDK 11 'den kaldırıldı (Özel Uygulama) Hayır This rule flags applications that use packages in the java.xml.bind or java.activation modules and package their own JAXB implementation.
java.xml.bind ve java.activation modülleri, JDK 11 'den kaldırıldı (Varsayılan Uygulama) Hayır This rule flags applications that use packages in the java.xml.bind or java.activation modules and use the WebSphere default JAXB implementation.
JavaFX modülleri JDK 11 'den kaldırıldı. Hayır JavaFX modülleri Java SE 11 'de kullanılamaz.
Dizi boş değerli bir öğe içerdiğindeURLClassLoader oluşturucular ve newInstance() çağrıları bir NullPointerKural Dışı Durumu oluşturur Hayır URLClassLoader constructors and newInstance() calls throw a NullPointerException when the URL array contains a null element in Java SE 11.
Java Web Start teknolojisi JDK 11 'den kaldırıldı Hayır Java Web Start teknolojisi JDK 11 'de kullanılamaz. Bu kural, bir uygulamadaki jnlp dosyalarını işaretler.
ForkJoinHavuzu ortak havuz sınıfı yükleyicisine ilişkin davranış değişikliği Hayır Bu kural, bir uygulamaya ilişkin iş parçacığı bağlamı sınıf yükleyicisi yayılımına dayalı olarak farklı davranabilecek yöntemleri işaretler.

Tablo 6. Java SE 11 uyumluluk etkileri (Liberty Core değil)
Kural Adı Hızlı Düzeltme Uygulanan İşlem
java.corba modülü JDK 11 'den kaldırıldı Hayır This rule flags applications that use packages in the java.corba module.
java.xml.ws modülü JDK 11 'den kaldırıldı (Özel Uygulama) Hayır This rule flags applications that use packages in the java.xml.ws module and package their own JAX-WS implementation.
java.xml.ws modülü JDK 11 'den kaldırıldı (Varsayılan Uygulama) Hayır This rule flags applications that use packages in the java.xml.ws module and use the WebSphere default JAX-WS implementation.

IBM XML uygulaması Java 11 'de kaldırılır. Ek bilgi için Uygulama uyumluluğun saptanması: XML konusuna bakın.

Tablo 7. Java SE 11 IBM XML somutlaması uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
Detected dependencies on internal packages of the IBM XML implementation Hayır Bu kural, IBM XML iç paketlerine yönelik başvuruları gösterir.
IBM XML somutlaması özel yapılandırma parametrelere dizgi hazır bilgi başvuruları saptandı Hayır Bu kural, IBM XML somutlaması özel yapılanış değiştirgelerine yönelik hazır bilgi başvurularını işaretler.
IBM XML somutlamasının dahillerine ilişkin dizgi hazır bilgisi başvuruları saptandı Hayır Bu kural, IBM XML somutlaması için dizgi hazır bilgi başvurularını işaretler.

Java SE 17 uyumluluk etkileri

Java 17, Liberty 21.0.0.10 ve sonraki yayın düzeylerinde desteklenir. Java SE 17 uyumluluk etkileri, 12 'den 17 'ye kadar olan Java SE sürümlerinden tüm uyumluluk etkilerini içerir.

Tablo 8. Java SE 17 uyumluluk etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
Uyumlu olmayan XML belgeleri için Properties.loadFromXML yöntemindeki davranış değişikliği Hayır Bu kural, java.util.Properties.loadFromXML​(java.io.InputStream) yöntem çağrılarını işaretler. Yöntem, Java SE 12 'de uyumlu olmayan XML belgeleri için kural dışı durum yayınlar.
user.timezone sistem özelliği için davranış değişikliği Hayır Bu kural, System.getProperty yöntemi çağrılarını user.timezone özellik değeriyle çağırır. Yöntem, Java SE 12 'de boş değer döndürebilir.
Kaldırılan FileInputStream.finalize() ve FileOutputStream.finalize() yöntemlerini kullanmayın. Hayır java.io.FileInputStream.finalize() ve java.io.FileOutputStream.finalize() yöntemleri Java SE 12 'den kaldırılmıştı.
com.sun.awt.SecurityWarning sınıfını kullanmayın. Hayır com.sun.awt.SecurityWarning sınıfı Java SE 12 'den kaldırıldı.
Kaldırılan ZipFile.finalize (), Inflater.finalize() ve Deflater.finalize() yöntemlerini kullanmayın. Hayır java.util.zip.ZipFile.finalize(), java.util.zip.Inflater.finalize() ve java.util.zip.Deflater.finalize() yöntemleri Java SE 12 'den kaldırılmıştır.
Kaldırılan Runtime.traceInstructions(boolean) ve Runtime.traceMethodCalls(boolean) yöntemlerini kullanmayın. Hayır java.lang.Runtime.traceInstructions(boolean) ve java.lang.Runtime.traceMethodCalls(boolean) yöntemleri Java SE 13 'ten kaldırılmıştır.
java.util.jar.Pack200 API ' leri kaldırıldı Hayır java.util.jar.Pack200 sınıfı, java.util.jar.Pack200.Packer ve java.util.jar.Pack200.Unpacker arabirimlerine ek olarak kaldırıldı.
sun.nio.cs.map sistem özelliği kaldırıldı. Hayır sun.nio.cs.map sistem özelliği Java SE 14 'te kaldırıldı. Bu kural, "sun.nio.cs.map" öğesine yönelik hazır bilgi başvurularını işaretler.
java.security.acl paketi kaldırıldı Hayır java.security.acl paketi Java SE 14 'te kaldırıldı, bunun yerine java.security.Policy sınıfları kullanılmalıdır.
Zayıf adlandırılmış eğriler kaldırıldı Hayır Zayıf adlandırılmış eğriler, Java SE 16 'daki SunEC sağlayıcısından kaldırıldı. Bu kural, adlandırılmış eğri olan herhangi bir zayıf eğriye başvurur.
Yeni java.lang.Record sınıfından bir ad alanı çakışması olup olmadığını denetleyin Hayır java.lang.Record sınıfı Java SE 14 'e eklendi. Bir ad alanı çakışmasını önlemek için, "Record" (Kayıt) adlı başka bir sınıfın, joker karakter (örneğin: "com.foo. *") yerine tek tip bir içe aktarma (örneğin: "com.foo.Record") kullanılarak içe aktarıldığından emin olun.
netscape.javascript.JSObject.getWindow(Applet) yöntemi kaldırıldı Hayır netscape.javascript.JSObject.getWindow(Applet) yöntemi Java SE 14 'te kaldırıldı. Yöntem yalnızca Java Eklentileriyle birlikte kullanıldığından, bu yöntem de kaldırıldığı için, bu yöntem için bir değiştirme işlemi yapılmamaktadır.
DatagramPacket.getPort() yönteminde bir davranış değişikliği olup olmadığını denetleyin. Hayır DatagramPacket.getPort() yöntemi için varsayılan dönüş değeri, Java SE 15 'te -1 ile 0 olarak değiştirildi.
RMIConnectorServer.CREDENTIAL_TYPES değişmezi kaldırıldı Hayır RMIConnectorServer.CREDENTIAL_TYPES sabiti Java SE 15 'te kaldırıldı.
SSLSession.getPeerCertificateChain() yöntemi somutlaması kaldırıldı Hayır Varsayılan SSLSession.getPeerCertificateChain() yöntemi somutlaması Java SE 15 'te kaldırıldı.
Değiştirici () ve ConstantBootstraps() oluşturucuları kaldırıldı Hayır Modifier() ve ConstantBootstraps() oluşturucuları Java SE 15 'te kaldırıldı.
SO_FLOW_SLA Solaris yuvası seçeneği kaldırıldı Hayır SO_FLOW_SLA Solaris yuvası seçeneği ve ilgili SocketFlow ve SocketFlow.Status sınıfları Java SE 15 'te kaldırılmıştır.
com.sun.net.ssl.internal.ssl.Provider sağlayıcısının adı kaldırıldı Evet com.sun.net.ssl.internal.ssl.Provider eski SunJSSE sağlayıcısı adı, Java SE 15 'te kaldırıldı. Bu, SunJSSE sağlayıcısı adıyla değiştirilmelidir.
java.lang.CharSequence arabirimindeki isEmpty() varsayılan yöntemini denetleyin Hayır Javaarabirimine Java SE 15 'teki java.lang.CharSequence arabirimine varsayılan bir isEmpty() yöntemi eklenmiştir. java.lang.CharSequence ve varsayılan bir isEmpty() yöntemini tanımlayan başka bir arabirimin güncellenmesi gerekebileceğini belirten sınıflar.
Java SE 17 genel bilgileri ve olası sorunlar Hayır Java SE 17 'deki değişikliklerle ve bu araç tarafından algılanmamış olası geçiş sorunlarıyla ilgili genel bilgiler.
ToolProvider() yapılandırıcısı kaldırıldı Hayır ToolProvider oluşturucusu Java SE 16 'da kaldırıldı.
java.lang.Thread ve java.lang.ThreadGroup' de kullanımdan kaldırılan yöntemleri kullanmaktan kaçının Hayır java.lang.Thread içindeki suspend ve resume yöntemleri ve java.lang.ThreadGroup içindeki suspend, resumeve allowThreadSuspension yöntemleri, Java SE 14 'te kullanımdan kaldırılmıştır. java.lang.ThreadGroup içindeki stop, destroy, isDestroyed, setDaemon ve isDaemon yöntemleri, Java SE 16 'da kullanımdan kaldırılmıştır.
java.util.stream.Stream arabiriminde toList() varsayılan yöntemini denetleyin. Hayır Java SE 16 'daki java.util.stream.Stream arabirimine varsayılan bir toList() yöntemi eklenmiştir. java.util.stream.Stream ve varsayılan bir toList() yöntemini tanımlayan başka bir arabirimin güncellenmesi gerekebileceğini belirten sınıflar.
HttpPrincipal.getName() yönteminde bir davranış değişikliği olup olmadığını denetleyin. Hayır HttpPrincipal.getName() yöntemi tarafından döndürülen değer, Java SE 16 'da değiştirildi.
java.io.LineNumberReader sınıfındaki bir davranış değişikliği olup olmadığını denetleyin Hayır java.io.LineNumberReader sınıfındaki satır sonlandırıcı tanımı, Java SE 16 olarak değiştirildi.
Kullanımdan kaldırılan java.security.cert API ' yı kullanmaktan kaçının Hayır The getIssuerDN, getSubjectDN, getIssuerDN, setIssuer, setSubject, getIssuerAsString, getSubjectAsString, and addIssuerName methods within java.security.cert.X509Certificate, java.security.cert.X509CRL, java.security.cert.X509CertSelector, and java.security.cert.X509CRLSelector were deprecated in Java SE 16.
HttpClient.newHttpClient ve HttpClientüzerinde bir davranış değişikliği olup olmadığını denetleyin.Builder.build Hayır Instantiating java.net.http.HttpClient may throw an UncheckedIOException if there are not enough underlying resources.
java.util.logging.LogRecord' ta kullanımdan kaldırılan yöntemleri kullanmaktan kaçının Hayır java.util.logging.LogRecord içindeki getThreadID ve setThreadID yöntemleri, Java SE 16 'da kullanımdan kaldırılmıştır.
Kullanımdan kaldırılan ilkel sarıcı sınıfı oluşturucuları kullanmaktan kaçının Hayır Temel sarıcı sınıfı oluşturucuları Java SE 16 'da kullanımdan kaldırıldı.
Herhangi bir değer tabanlı sınıflarda eşitleme kullanmaktan kaçının Hayır Java SE 16 'daki değer tabanlı tüm sınıfların eşgörünümlerine ilişkin uyumlulaştırma önerilmez.
javax.security.cert paketi kaldırıldığı için kullanımdan kaldırıldı Evet

javax.security.cert , Java SE 13 'te kullanımdan kaldırılmıştır ve kaldırılması için işaretlenir. Bu paketteki sınıfların artık kullanılmaması gerekir. java.security.cert paketi uygun yedekler içerir.

Thread.countStackFrames() yöntemi, UnsupportedOperation(UnsupportedOperation) kural dışı durumunu koşulsuz olarak değiştirdi Hayır

The terminally deprecated method Thread.countStackFrames() has been changed to unconditionally throw an UnsupportedOperationException in Java SE 14.

Kaldırılan RMI Etkinleştirme paketini kullanmaktan kaçının Hayır

java.rmi.activation paketi, Java SE 15 'te kullanımdan kaldırılmıştır ve Java SE 17 'de kaldırılacaktır.

Yuva Somutlaması Üreticisi Mekanizması kullanımdan kaldırıldı Hayır Sistem çapında yuva uygulama fabrikalarını ayarlamak için kullanılan aşağıdaki yöntemler Java SE 17: static void ServerSocket.setSocketFactory(SocketImplFactory fac), static void Socket.setSocketImplFactory(SocketImplFactory fac), static void DatagramSocket.setDatagramSocketImplFactory(DatagramSocketImplFactory fac)olarak kullanılmamaktadır.
Düzenli ifade kalıbı eşleştirmede bir davranış değişikliği olup olmadığını denetle Hayır Java SE 17 'deki kesişimler kullanılarak bazı düzenli ifadeler için örüntü eşleştirme davranışı değiştirildi.
sun.misc.Unsafe ' den defineAnonymoussınıfı yöntemi kaldırıldı Hayır The defineAnonymousClass method from sun.misc.Unsafe has been removed in Java SE 17.
Java aracılarında bir davranış değişikliği olup olmadığını denetle Evet Java aracısı premain ve agentmain yöntemleri, Java SE 17 'de genel kullanıma açık olmalıdır.
Uygulama API 'si kaldırıldıktan sonra kullanımdan kaldırıldı Hayır Uygulama API 'si, Java SE 17 'de kaldırıldıktan sonra kullanımdan kaldırılmıştır.
SHA-1 algoritmaları ile imzalanmış JARs artık kısıtlanmış Hayır SHA-1 algoritmaları ile imzalanmış olan JRE ' ler artık varsayılan olarak kısıtlanır ve Java SE 17 'de imzasız olarak kabul edilir.
Uzak EJB çağrıları Java SE 17 'de başarısız olabilir Hayır Birim erişimi zorlaması nedeniyle, uzak EJB çağrıları Java SE 17 'de başarısız olabilir.

Oracle - IBM uyumluluğu etkileri

Uygulamanızı bir Oracle Java Runtime Environment olanağından IBM Java Runtime Environment 'a geçirirken aşağıdaki kuralları çalıştırın. Bir Oracle Java Runtime 'ı kullanarak bir Liberty sunucusu çalıştırıyorsanız, bu kurallar için hızlı düzeltmeleri çalıştırmayın.

Tablo 9. Oracle - IBM uyumluluğu etkileri
Kural Adı Hızlı Düzeltme Uygulanan İşlem
com.sun.net.ssl.internal paketlerini sapta Hayır Bu kural, Java dosyalarında kullanılabilir olmayan ve kullanılmaması gereken belirli com.sun.net.ssl.internal paketlerinin açıklamalarını içe aktarır.
com.sun.net.ssl paketlerinden API ' leri kullanma Evet Bu kural, >com.sun.net.ssl paketindeki sınıfları ve arabirimlerin, javax.net.ssl paketindeki sınıflar ve arabirimler tarafından değiştirildiğini saptar.
com.sun.org.apache JAXP iç sınıflarını kullanmayın Hayır Bu kural işaretleri iç Sun JAXP sınıfları IBM Java Runtime Environment içinde kullanılamaz.
Dizgi hazır bilgilerinde com.sun.org.apache JAXP paket adlarını kullanmayın. Hayır Bu kural, dizgi hazır bilgilerinde kullanılan com.sun.org.apache JAXP 1.3 paket adlarını algılar.
com.sun.net.ssl.internal.ssl.Provider sınıfını kullanmayın. Evet Bu kural, com.sun.net.ssl.internal.ssl.Provider sınıfına com.ibm.jsse.IBMJSSEProviderile değiştirilmelidir.
com.sun.net.ssl.internal.www.protocol.https.Handler sınıfını kullanmayın. Evet This rule flags the com.sun.net.ssl.internal.www.protocol.https.Handler class that should be replaced by com.ibm.net.ssl.www2.protocol.https.Handler.
com.sun.net.ssl.internal.www.protocol paketini kullanmayın Evet Bu kural, com.ibm.net.ssl.www2.protocolile değiştirilmesi gereken com.sun.net.ssl.internal.www.protocol paketi başvurularını işaretler.

Sun iç API ' leri

Only run the following rules when you are migrating your application from an Oracle Java Runtime Environment to an IBM Java Runtime that contains the IBM class. Örneğin, WebSphere Application Server ile birlikte verilen HP-UX ve Solaris Java Runtime Environment, sınıfı içermez. Bu kural herhangi bir kural kümesi tarafından otomatik olarak seçilmez.

Tablo 10. Sun iç API ' ları
Kural Adı Hızlı Düzeltme Uygulanan İşlem
sun.security.x509 paketindeki API ' leri kullanmayın Evet sun.security.x509 paketindeki sınıflar ve arabirimler, bazı işletim sistemlerindeki com.ibm.security.x509 paketindeki sınıflar ve arabirimler ile değiştirilir.