Migrowanie z wcześniejszych wersji produktu IBM SDK, Java Technology Edition
Uwagi dotyczące migracji z wcześniejszych wersji produktu IBM® SDK, Java™ Technology Edition.
Ta wersja zawiera wiele nowych funkcji i funkcji w porównaniu z wcześniejszymi wersjami, co może wymagać starannego planowania. Więcej informacji na ten temat zawiera sekcja Co nowego .
Ważne zmiany
- W systemie z/OS®komponent JRIO jest nieaktualny w produkcie IBM SDK, Java Technology Edition 7 i jest usuwany z tej wersji. Zamiast tego należy użyć urządzeń we/wy akt, które są udostępniane w komponencie JZOS. Więcej informacji na temat produktu JZOS zawiera sekcja Java Batch Launcher and Toolkit for z/OS.
- Właściwość systemowa jdk.map.althashing.threshold nie jest już dostępna w tej wersji, ponieważ alternatywny algorytm kodowania mieszającego dla map mieszanych nie jest już używany. Alternatywny algorytm kodowania mieszającego został wprowadzony we wcześniejszych wersjach środowiska Java w celu zwiększenia wydajności produktu java.util.HashMap w określonych warunkach. Ta implementacja jest udoskonalana w tej wersji przy użyciu zrównoważonych drzew, a nie dowiązanych list do zapisywania wpisów na mapie. Klasy WeakHashMap i Hashtable powracają do zachowania przed alternatywnym algorytmem mieszającym. Jednak zmiany w klasach HashMap i HashSet mogą zmieniać kolejność iteracji elementów zwracanych z odwzorowań mieszanych.
- Narzędzie do przetwarzania adnotacji nie jest już dostarczane z tą wersją. Narzędzie jest nieaktualne w wersji 7 i jest zastępowane przez funkcję API Pluggable Annotation Processing (JSR269). Jeśli używane jest przetwarzanie adnotacji, należy przeprowadzić migrację do tego nowego obiektu, który został wprowadzony w wersji 6. Więcej informacji na ten temat można znaleźć pod adresem https://docs.oracle.com/javase/7/docs/technotes/guides/apt/index.html.
- Funkcja ułatwień dostępu IBM , JawBridge, nie jest już obsługiwana w tej wersji. Aby korzystać z lektora ekranowego, takiego jak JAWS dla systemu Windows, należy skonfigurować środowisko wykonawcze w taki sposób, aby korzystało z mostu Oracle Java Access Bridge. Więcej informacji na ten temat zawiera sekcja Włączanie obsługi ułatwień dostępu Java.
- Narzędzie jdkconv nie jest dołączone do tego wydania.
- Mechanizm Nashorn Javascript Engine zastępuje implementację Rhino w tej wersji. Plik Rhino javascript.jar jest usuwany z katalogu jre/lib/ext .
- W systemie AIX®paleta kolorów środowiska Common Desktop Environment (CDE) obsługuje teraz wysokie ustawienia kolorów. W rezultacie domyślne ustawienia produktu SystemColor dla pakietu Abstract Windows Toolkit (AWT) są teraz takie same jak w przypadku wcześniejszych wersji pakietu Motif Toolkit. Aby powrócić do wcześniejszych ustawień palety kolorów AWT, ustaw właściwość systemową ibm.awt.mediumColor na wartość true. Więcej informacji na ten temat zawiera sekcja -Dibm.awt.mediumColor option w sekcji Opcje wiersza komend różnych właściwości systemowych.
- Właściwość systemowa com.ibm.IgnoreMalformedInput zostanie usunięta w tej wersji, ponieważ ma ona zastosowanie tylko do konwerterów we/wy, które nie są już dostępne w środowisku Java SE 8.
- Właściwość systemowa ibm.stream.nio zostanie usunięta w tej wersji. Funkcja tej właściwości miała umożliwić użycie konwerterów NIO domyślnie zamiast konwerterów we/wy. Jednak konwertery we/wy nie są już dostępne w środowisku Java SE 8, a więc właściwość jest nadmiarowa.
- Z tej wersji broker ORB automatycznie zarządza liczbą współbieżnych połączeń z punktem końcowym serwera. Ta zmiana w zachowaniu może powodować pewne problemy, które są szczegółowo opisane w sekcji Problemy z zarządzaniem połączeniami autonomicznymi.
- AIX, Linux®i z/OS: klawisz ALT nie wyróżnia już pierwszego menu w aktywnym oknie interfejsu użytkownika, o ile aplikacja nie korzysta z funkcji Look and Feel (com.sun.java.swing.plaf.windows.WindowsLookAndFeel) systemu Windows.
- Nazwa zestawu znaków
IBM1047_LFzostała zmieniona nax-IBM1047_LF.
Z odświeżenia usługi 5 w systemie z/OSistnieje nowe minimalne wymagania sprzętowe systemu IBM System z9® lub nowszego. Starsze systemy z800 i z900 nie są już obsługiwane.
Linux: W celu spełnienia wymagań dotyczących dynamicznego łączenia, należy zainstalować standardową bibliotekę C++ libstdc++.so.6.
W celu obsługi zwartego Strings (-XX:+CompactStrings), java.lang.String nie zawiera już pola przesunięcia, które jest używane do wskazania początku String w bazowych danych char[] . Wydajność może mieć wpływ na użycie następujących metod w kodzie dla wartości beginIndex innych niż zero:- String.substring(int beginIndex)
- String.substring(int beginIndex, int endIndex)
We wcześniejszych wersjach tworzona jest nowa String , ale bazowy char[] jest współużytkowany z oryginalnym String , dzięki czemu nie są kopiowane żadne dane produktu char[] . Jeśli wydajność jest znacznie pogorszona, ponieważ dane produktu char[] są teraz kopiowane, spróbuj ponownie zaimplementować kod, aby uniknąć kopiowania danych produktu String .
Uwaga: Aplikacje napisane w celu uruchomienia w implementacjach języka Java korzystających z maszyny wirtualnej HotSpot są niezmienione, ponieważ dane produktu String są kopiowane, nawet jeśli używany jest parametr beginIndex o wartości zero.
W czasie odświeżania usługi 5 następujące zmiany mają zastosowanie do maszyny wirtualnej IBM J9 :- Wartość domyślna opcji -Xloaminimum jest zmieniana z 0 na 0.01. To ustawienie przydziela minimalny obszar użytków w wysokości 1% do dużego obszaru obiektu (LOA) zamiast 0%.
- Rozszerzenia zostały wprowadzone do komponentów IBM Garbage Collector and Memory Pool MXBeans, aby udostępnić bardziej szczegółowe informacje na temat działania czyszczenia pamięci i powiązanych pul pamięci. Jeśli aplikacja do monitorowania jest zapisywana w celu oczekiwania tylko jednej puli pamięci sterty lub zależy od nazwy puli pamięci
Java heap, można przywrócić wcześniejszą implementację za pomocą opcji -XX:+HeapManagementMXBeanCompatibility . Więcej informacji na temat tej opcji oraz nowych nazw MemoryPool i GarbageCollector zawiera sekcja -XX: [ + |-]HeapManagementMXBeanCompatibility. - Metoda OperatingSystemMXBean.getProcessCpuTime() jest zmieniana tak, aby zwracała wartości w nanosekundach zamiast w setkach nanosekundów. Jeśli aplikacja korzysta z tej metody, zmodyfikuj aplikację lub przywróć poprzednie działanie, używając właściwości systemowej -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns .
- Narzędzie do instrumentacji środowiska wykonawczego, dostępne w procesorach Power ® 8, zEC12i nowszych, jest domyślnie wyłączone. To narzędzie można włączyć za pomocą opcji -XX: +RuntimeInstrumentation .

Minimalny obsługiwany poziom konserwacyjny dla systemu AIX V6.1 to obecnie TL9.
Domyślna wielkość pamięci podręcznej współużytkowanych klas wynosi obecnie 300 MB, z wyjątkami dla trwałych pamięci podręcznych z mniej niż 6 GB wolnego miejsca na dysku oraz nietrwały pamięci podręczne w systemie Linux. Więcej informacji na ten temat zawiera sekcja -Xshareclasses.
Domyślne uprawnienia katalogu pamięci podręcznej współużytkowanych klas są bardziej restrykcyjne w systemach operacyjnych innych niż Windows. Więcej informacji na ten temat zawiera sekcja -Xshareclasses:cacheDirPerm.
Domyślna wielkość stosu dla wątków systemu operacyjnego w 64-bitowym systemie z/OS została zmieniona z 384 KB na co najmniej 1 MB. Więcej informacji na temat tego ustawienia zawiera sekcja -Xmso.
Implementacja JDWP jest zastępowana odpowiednikiem OpenJDK , więc niektóre opcje komendy zostały zmienione. Więcej informacji na ten temat zawiera pomoc dla wiersza komend:java -agentlib:jdwp=help
Zmiany w wewnętrznych interfejsach API przyłączenia mają wpływ na wewnętrzną bibliotekę klas pakietu SDK oraz pliki tools.jar i healthcenter.jar :- Jeśli aplikacja korzysta z prywatnej kopii pliku tools.jar z wcześniejszej wersji, aplikacja może nie być w stanie użyć funkcji API dołączania w tej wersji, ponieważ klasy Java nie są zgodne. Zamiast tego należy użyć pliku tools.jar z tej wersji.
- Podobnie plik healthcenter.jar z tej wersji nie jest kompatybilny z wcześniejszymi wersjami.

- W przypadku pakietu poprawek 41 odpowiednia wielkość sterty dla aplikacji jest automatycznie określana i stosowana. Więcej informacji na ten temat można znaleźć w sekcji -XX: [ + |-]UseGCStartupHints.
- Począwszy od pakietu poprawek 41, Przezroczyste Wielkie Strony (THP) są domyślnie włączone podczas używania ustawienia
madvise(/sys/kernel/mm/transparent_hugepage/enabled) w systemie Linux w systemach x86 . Więcej informacji na ten temat zawiera strona -XX: [ + |-]TransparentHuge.
Opcja -XX:[+|-]ExitOnOutOfMemoryErrorjest aktualizowana, aby wyjść tylko z maszyny VMOutOfMemoryErrors, a nie z błędami maszyny VM i Java, aby były zgodne z opcją Hotspot. Więcej informacji na ten temat zawiera sekcja-XX:[+|-]ExitOnOutOfMemoryError.
Implementacja obsługi sygnału IBM jest zastępowana w tej wersji przy użyciu implementacji OpenJDK . W rezultacie opcja wiersza komend właściwości systemu -Dcom.ibm.signalhandling.ignoreLogoffjest teraz ignorowana. Więcej informacji na ten temat zawiera sekcja Opcje wiersza komend różnych właściwości systemowych.
- Certyfikaty serwera
TLS, które są zakotwiczane przez uprawnienia głównego certyfikatu firmy Symantec, są obecnie niestrudzane. Więcej informacji na ten temat zawiera sekcja Co nowego: odświeżanie serwisowe 6 z pakietem poprawek 25.
Protokoły bezpieczeństwa TLS 1.0 i 1.1 są domyślnie wyłączone. Więcej informacji na ten temat zawiera sekcja Co nowego: odświeżanie serwisowe 6 z pakietem poprawek 30.
IBMJCEPlus to domyślny dostawca zabezpieczeń. Tę aktualizację można przywrócić, zmieniając kolejność dostawców w pliku jre/lib/security/java.security w katalogu instalacyjnym pakietu SDK. Więcej informacji na ten temat zawiera sekcja Włączanie dostawców IBMJCEPlus i IBMJCEPlusFIPS.
Dezaktualizacje i usunięcia
- Implementacja IBM XML jest nieaktualna i zostanie zastąpiona implementacją XML Oracle w przyszłej wersji.
- Opcja -Xgc:splitheap jest nieaktualna i zostanie usunięta z przyszłej wersji maszyny wirtualnej Eclipse OpenJ9 VM.
- Opcja -Xfastresolve jest nieaktualna i zostanie usunięta z przyszłej wersji maszyny wirtualnej Eclipse OpenJ9 VM.
- Opcja -Xlp jest nieaktualna i zostanie usunięta z przyszłej wersji maszyny wirtualnej Eclipse OpenJ9 VM. Zamiast tego należy użyć opcji -Xlp:objectheap , aby przydzielić stertę obiektów Java przy użyciu dużych wielkości stron i opcji -Xlp:codecache , aby przydzielić pamięć podręczną kodu JIT za pomocą dużych wielkości stron.
The com.ibm.lang.management.MemoryMXBean.getGCMasterThreadCpuUsed() and com.ibm.lang.management.MemoryMXBean.getGCSlaveThreadsCpuUsed() methods are deprecated and will be removed from a future release of the Eclipse OpenJ9 VM. Zamiast tego należy użyć metod com.ibm.lang.management.MemoryMXBean.getGCMainThreadCpuUsed() i com.ibm.lang.management.MemoryMXBean.getGCWorkerThreadsCpuUsed() .
usuwane są następujące zestawy algorytmów szyfrowania JSSE:- SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_FIPS_WITH_DES_CBC_SHA

Właściwości renegocjacji TLS com.ibm.jsse2.renegotiateicom.ibm.jsse2.extended.renegotiation.indicatorsą zastępowane przez nowe właściwościcom.ibm.jsse2.allowUnsafeRenegotiationicom.ibm.jsse2.allowLegacyHelloMessages. Użycie wcześniejszych właściwości nie ma żadnego efektu i nie jest generowany żaden komunikat ostrzegawczy. Więcej informacji na temat nowych właściwości znajduje się w publikacji Transport Layer Security (TLS) Renegotiation Issue w podręczniku zabezpieczeń.
Domyślna wielkość stosu systemu operacyjnego w systemach AIX i Linux w 64-bitowym systemie IBM Power Systems została zwiększona z 256 kB do 512 KB.
Migracja z wcześniejszych wersji
Jeśli przeprowadzana jest migracja z wersji wcześniejszej niż wersja 7, należy przeczytać temat Migrowanie z wcześniejszych wersji w odpowiednim podręczniku użytkownika platformy dla wersji 7. Te podręczniki użytkownika można znaleźć na następującej stronie: IBM SDK, Java Technology Edition, wersja 7.