以前のリリースの IBM SDK, Java Technology Edition からのマイグレーション
IBM® SDK, Java™ Technology Editionの旧リリースからマイグレーションする場合の考慮事項。
このリリースには旧リリースに比べて数多くの新しいフィーチャーや機能が含まれており、慎重な計画が必要になる場合があります。 概要については、「 新機能 」セクションを参照してください。
重要な変更点
IBM SDK, Java Technology Edition バージョン 7 またはバージョン 7 リリース 1 からマイグレーションする場合は、以下の変更が適用されます。
- z/OS®の場合、JRIO コンポーネントは IBM SDK, Java Technology Edition バージョン 7 で非推奨になり、このリリースから削除されました。 代わりに、JZOS コンポーネントで提供されるレコード入出力機能を使用してください。 JZOS について詳しくは、 Java Batch Launcher and Toolkit for z/OSを参照してください。
- システム・プロパティー jdk.map.althashing.threshold は、ハッシュ・マップの代替ハッシュ・アルゴリズムが使用されなくなったため、このリリースでは使用できなくなりました。 代替ハッシュ・アルゴリズムは、特定の条件下で java.util.HashMap のパフォーマンスを向上させるために、以前のリリースの Java で導入されました。 この実装は、リンク・リストの代わりに平衡ツリーを使用してマップ・エントリーを保管することにより、このリリースで改善されています。 クラス WeakHashMap および Hashtable を使用すると、代替ハッシュ・アルゴリズムより前の動作に戻ります。 ただし、クラス HashMap および HashSet を変更すると、ハッシュ・マップから返される項目の反復順序が変わることがあります。
- 注釈処理ツールは、このリリースで提供されなくなりました。 このツールは、バージョン 7 で非推奨になり、Pluggable Annotation Processing API (JSR269) によって置き換えられています。 注釈処理を使う場合、バージョン6に導入されたこの新機能に移行しなければなりません。 詳しくは、「 https://docs.oracle.com/javase/7/docs/technotes/guides/apt/index.html」を参照してください。
- 今回のリリースでは、IBM アクセシビリティー機能 JawBridge はサポートされなくなりました。 JAWS for Windows などのスクリーン・リーダーを使用する場合は、 Oracle Java Access Bridge を使用するようにランタイム環境を構成します。 詳しくは、 Java アクセシビリティー・サポートの有効化を参照してください。
- jdkconv ツールは、このリリースに組み込まれていません。
- このリリースで、Rhino 実装は Nashorn Javascript エンジンによって置き換えられています。 Rhino javascript.jar ファイルは、jre/lib/ext ディレクトリーから削除されています。
- AIX®では、共通デスクトップ環境 (CDE) カラー・パレットが高カラー設定をサポートするようになりました。 その結果、Abstract Windows Toolkit (AWT) のデフォルトの SystemColor 設定は、以前のリリースの Motif Toolkit と同じになりました。 以前の AWT カラー・パレット設定に戻すには、ibm.awt.mediumColor システム・プロパティーを true に設定します。 詳しくは、「 その他のシステム・プロパティー・コマンド行オプション」の -Dibm.awt.mediumColor option を参照してください。
- システム・プロパティー com.ibm.IgnoreMalformedInput は、Java SE 8 で使用できなくなった IO コンバーターにのみ適用可能であるため、このリリースで削除されます。
- システム・プロパティー ibm.stream.nio はこのリリースで削除されます。 このプロパティーの機能は、IO コンバーターの代わりに NIO コンバーターを使用可能にすることでした。 しかし、IO コンバーターは Java SE 8 で使用できなくなったため、このプロパティーは不要になりました。
- このリリースから、ORB はサーバー・エンドポイントへの同時接続の数を自動的に管理します。 この動作の変更により、いくつかの問題が発生する可能性があります。詳しくは、「 オートノミック接続管理の問題」を参照してください。
- AIX、 Linux®、および z/OS: アプリケーションで Windows のルック・アンド・フィール (com.sun.java.swing.plaf.windows.WindowsLookAndFeel) を使用していない限り、ALT キーはユーザー・インターフェースのアクティブ・ウィンドウの最初のメニューを強調表示しなくなりました。
- 文字セット名
IBM1047_LFがx-IBM1047_LFに変更されます。
z/OSには、 IBM System z9® 以降の新しい最小ハードウェア要件があります。 旧 z800 システムと z900 システムはサポートされなくなりました。
Linux: ダイナミック・リンク依存関係を満たすには、標準 C++ ライブラリー libstdc++.so.6をインストールする必要があります。
コンパクトな Strings (-XX:+CompactStrings)、 java.lang.String )をサポートするため、 char[] データ内の String の開始を示すために使用されるオフセット・フィールドが含まれなくなった。 コード内でゼロ以外の beginIndex の値に対して以下のメソッドを使用すると、パフォーマンスが影響を受ける可能性があります。- String.substring(int beginIndex)
- String.substring(int beginIndex, int endIndex)
以前のリリースでは、新しい String が作成されますが、基本 char[] がオリジナルの String と共有されるため、char[] データはコピーされません。 char[] データがコピーされるようになったためにパフォーマンスが大きく低下する場合、String データのコピーを避けるようコードを再実装してみてください。
注: HotSpot VM を使用する Java 実装で実行するように作成されたアプリケーションは影響を受けません。ゼロの beginIndex を使用しても、 String データがコピーされるためです。
サービス・リフレッシュ 5 では、以下の変更が IBM J9 仮想マシンに適用されます。- -Xloaminimum オプションのデフォルト値が 0 から 0.01 に変更されました。 この設定は、最小旧世代スペースの (0% ではなく) 1% をラージ・オブジェクト域 (LOA) に割り振ります。
- ガーベッジ・コレクション・アクティビティーおよび関連するメモリー・プールに関するより詳細な情報を提供するために、IBM Garbage Collector と Memory Pool MXBeans に対する機能拡張が行われます。 監視アプリケーションが1つのヒープメモリプールのみを予期するように作成されている場合、またはメモリプール名
Java heapに依存する場合は、-XX:+HeapManagementMXBeanCompatibilityオプションで前の実装に戻すことができます。 このオプションと、提供される新しい MemoryPool および GarbageCollector の名前についての詳細は 、-XX:[ +|-]HeapManagementMXBeanCompatibility ] を参照してください。 - OperatingSystemMXBean.getProcessCpuTime() メソッドは、百ナノ秒単位ではなくナノ秒単位で値を返すように変更されています。 アプリケーションでこのメソッドを使用する場合は、 -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns システム・プロパティーを使用して、アプリケーションを変更するか、以前の動作に戻します。
- Power ® 8、 zEC12、およびそれ以降のプロセッサーで使用可能なランタイム・インスツルメンテーション機能は、デフォルトでは無効になっています。 この機能はオプションで有効にすることができます。 -XX:+RuntimeInstrumentation オプションで有効にすることができます。

AIX V6.1 でサポートされる最小保守レベルは現在 TL9 です。
現在、共有クラス・キャッシュのデフォルト・サイズは 300 MB です。
ただし、6 GB 未満の空きディスク・スペースの永続キャッシュと、Linux 上の非永続キャッシュに関しては、この限りではありません。 詳しくは、 -Xshareclassesを参照してください。
Windows 以外のオペレーティング・システムでは、デフォルトの共有クラス・キャッシュ・ディレクトリーの権限がより厳格になります。 詳細については、 -Xshareclasses:cacheDirPerm。 
64 ビット z/OS 上のオペレーティング・システム・スレッドのデフォルト・スタック・サイズが 384 KB からオペレーティング・システムの最小 1 MB に変更されました。 この設定について詳しくは、 -Xmsoを参照してください。
JDWP 実装が OpenJDK の同等の実装で置き換えられたため、いくつかのコマンド・オプションが変更されました。 詳しくは、コマンド行ヘルプを参照してください。java -agentlib:jdwp=help
Attach API 内部インターフェースに対する変更は、SDK の内部クラス・ライブラリー、および tools.jar ファイルと healthcenter.jar ファイルに影響します。- アプリケーションが以前のリリースの tools.jar ファイルの専用コピーを使用する場合、Java クラスが一致しないため、アプリケーションはこのリリースの Attach API を使用できない可能性があります。 代わりに、今回のリリースの tools.jar ファイルを使用してください。
- 同様に、このリリースのhealthcenter.jarファイルは、以前のリリースと互換性がありません。

- フィックスパック 41 以降、アプリケーションに適切なヒープ・サイズが自動的に判別されて適用されます。 詳細については 、-XX:[ +|-]UseGCStartupHints ] を参照してください。
- フィックスパック 41 以降、 x86 システム上の Linux で
madvise(/sys/kernel/mm/transparent_hugepage/enabled) 設定を使用すると、Transparent Huge Pages (THP) がデフォルトで有効になります。 詳細については 、-XX:[ +|-]TransparentHugePage ] を参照してください。
-XX:[+|-]ExitOnOutOfMemoryErrorオプションは、ホット・スポット・オプションと一致するように、VM と Java の両方のスローされたエラーではなく、VMOutOfMemoryErrorsでのみ終了するように更新されました。 詳しくは、-XX:[+|-]ExitOnOutOfMemoryErrorを参照してください。
IBM シグナル処理実装は、このリリースで OpenJDK 実装に置き換えられました。 その結果、-Dcom.ibm.signalhandling.ignoreLogoffシステム・プロパティー・コマンド行オプションは無視されるようになりました。 詳しくは、 その他のシステム・プロパティーのコマンド行オプションを参照してください。
Symantecルート認証局に固定されたTLSサーバー認証は現在信頼されていません。 詳しくは、 新機能: サービス・リフレッシュ 6 フィックスパック 25を参照してください。
セキュリティー・プロトコルTLS1.0と1.1は、デフォルトでは無効になっています。 詳しくは、 新機能: サービス・リフレッシュ 6 フィックスパック 30を参照してください。
IBMJCEPlusは、デフォルトのセキュリティー・プロバイダーです。 この更新を元に戻すには、SDK インストール・ディレクトリーの jre/lib/security/java.security ファイル内のプロバイダーの順序を変更します。 詳しくは、 IBMJCEPlus および IBMJCEPlusFIPS プロバイダーの有効化を参照してください。
非推奨および削除
このリリースには、次の非推奨記述および削除が適用されます。
- IBM XML 実装環境は非推奨になり、将来のリリースでは Oracle XML 実装環境で置き換えられます。
- -Xgc:splitheap オプションは非推奨であり、将来の Eclipse OpenJ9 VM リリースで削除されます。
- -Xfastresolve オプションは非推奨であり、将来の Eclipse OpenJ9 VM リリースで削除されます。
- -Xlp オプションは非推奨であり、将来の Eclipse OpenJ9 VM リリースで削除されます。 代わりに、大きいページ・サイズを使用することで Java オブジェクト・ヒープを割り振るには -Xlp:objectheap オプションを使用し、大きなページ・サイズを使用して JIT コード・キャッシュを割り振るには -Xlp:codecache オプションを使用してください。
com.ibm.lang.management.MemoryMXBean.getGCMasterThreadCpuUsed() メソッドおよび com.ibm.lang.management.MemoryMXBean.getGCSlaveThreadsCpuUsed() メソッドは非推奨になり、 Eclipse OpenJ9 VM の将来のリリースから削除される予定です。 代わりに、 com.ibm.lang.management.MemoryMXBean.getGCMainThreadCpuUsed() メソッドと com.ibm.lang.management.MemoryMXBean.getGCWorkerThreadsCpuUsed() メソッドを使用してください。
以下の JSSE 暗号スイートが削除されました。- SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_FIPS_WITH_DES_CBC_SHA

TLS 再ネゴシエーション・プロパティー com.ibm.jsse2.renegotiateおよびcom.ibm.jsse2.extended.renegotiation.indicatorは、新しいプロパティーcom.ibm.jsse2.allowUnsafeRenegotiationおよびcom.ibm.jsse2.allowLegacyHelloMessagesに置き換えられました。 以前のプロパティーを使用しても効果はありません。また、警告メッセージも出されません。 新しいプロパティーについて詳しくは、セキュリティー・ガイドの「 Transport Layer Security (TLS) 再ネゴシエーションの問題 」を参照してください。
64 ビット IBM Power Systems 上の AIX および Linux でのデフォルトのオペレーティング・システム・スタック・サイズが 256 KB から 512 KB に増やされました。
以前のリリースからのマイグレーション
バージョン7前のリリースから移行する場合は、バージョン7の該当プラットフォーム・ユーザー・ガイドの前のリリースからの移行というタイトルのトピックを参照してください。 これらのユーザー・ガイドは、 IBM SDK, Java Technology Edition バージョン 7のページにあります。