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
| 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ı:
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:
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
| 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
| 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.
| 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.
| 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. |
| 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.
| 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.
| 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 |
|
| Thread.countStackFrames() yöntemi, UnsupportedOperation(UnsupportedOperation) kural dışı durumunu koşulsuz olarak değiştirdi | Hayır | The terminally deprecated method |
| Kaldırılan RMI Etkinleştirme paketini kullanmaktan kaçının | Hayı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.
| 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.
| 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. |