開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

Similar documents
開発・運用時のガイド JDK11への移行に伴う留意点

セットアップカード

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

第 4 版 2019 年 05 月

JDK のインストール (2012 年 8 月時点でのバージョン ) Java の実行環境 開発環境は さまざまな企業 団体が開発 配布を行っているが 当テキストでは Java の生みの親である Sun MicroSystems 社 ( 現 Oracle 社 ) の実行環境 開発環境を使用する Ja

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

intra-mart Accel Platform

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

JP1 Version 11

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Android Layout SDK プログラミング マニュアル

OpenRulesモジュール

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

BIP Smart サンプル説明書

OpenRulesモジュール

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

BIP Smart サンプル説明書

FW APIServer 設定ガイド Version 年 2 月 3 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

Microsoft Windows Windows Server Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Oracle と Java は Oracle Corporation 及びその子会社 関

intra-mart Accel Platform

作成日 :2017/03/29 ******************************************************************************* ** ** ** FUJITSU Cloud Service K5 ** ** ** ** ソフトウェアカフ

Hitachi Storage Adapter -Hitachi Storage Adapter for VMware vCenter- サポートマトリックス

富士通Interstage Application Server V10でのOracle Business Intelligence の動作検証

Microsoft Word - SPC9-API_ユーザーズガイド_V37.doc

Hitachi Compute Adapter -Hitachi Compute Plug-in for VMware vCenter- サポートマトリックス

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

intra-mart Accel Platform — Slack連携モジュール 利用ガイド   初版  

— OpenRulesモジュール 2017 Summer リリースノート   第2版  

やよいの顧客管理

弥生給与/やよいの給与計算

弥生 シリーズ

弥生会計 プロフェッショナル/スタンダード/やよいの青色申告

弥生会計/やよいの青色申告

弥生会計 ネットワーク/プロフェッショナル2ユーザー

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

Webアプリケーションでのlog4j利用ガイド

Copyright 2008 NIFTY Corporation All rights reserved. 2

JP1 Version 12

"ソフトウェア カフェテリアサービス向けソフトウェア説明書

PowerRW+からPowerRDBconnectorへの移行手引書

"ソフトウェア カフェテリアサービス向けソフトウェア説明書

untitled

WebOTX V6 JDBCアプリケーションのトラブルシューティング(JDBCデータソース)

初心者にもできるアメブロカスタマイズ新2016.pages

- 2 Copyright (C) All Rights Reserved.

— OpenRulesモジュール 2017 Summer リリースノート   初版  

SystemDirector Developer's Studio(V3.2) 適用ガイド

Red Hat Enterprise Linux Server 6 動作確認表

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Copyright 2006 KDDI Corporation. All Rights Reserved page1

トラブルシューティング集

Copyright All Rights Reserved. -2 -!

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

マニュアル体系と読み方

IPA:セキュアなインターネットサーバー構築に関する調査

Microsoft Word - 最終版 バックせどりismマニュアル .docx

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

— IM-VisualDesigner Migration Tool 2017 Spring リリースノート   初版  

目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

ソフトウェア カフェテリアサービス向けソフトウェア説明書

インテル(R) Visual Fortran コンパイラ 10.0

CONTEC DIOプロバイダ ユーザーズガイド

説明書

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows FAQ 集 2013(Mar) NEC Corporation 導入に関する質問 運用に関する質問 動作環境に関する質問

Oracle Enterprise Linux 5における認証

はしがき (1) マニュアルについて CLUSTERPRO MC ProcessSaver for Linux Web サーバー監視機能テンプレートガイド は ProcessSaver による Web サーバー監視時のプロセス監視ソリューションを支援するための導入事例をご紹介します 本資料でご紹介す

JP1/Integrated Management - Service Support 操作ガイド

情報更新日 :2012/5/20 サンプルソースの文字化けについて [ トラブル事例 ] Eclipse に ダウンロードしたソースコードをインポートすると文字化けが起きる ( 関連箇所 : 0-1 はじめに ) [ 回答 ] 本書でその利用を前提としております Tech Fun Eclipse は

dekiru_asa

WebOTXマニュアル

文字列操作と正規表現

2. バージョンアップ内容 intra-mart WebPlatform/AppFramework Ver.7.1 および Ver.7.2 に対応いたしました SAP JCo 3.0.x に対応いたしました 3. 製品概要 IM-ERP リアルコネクトは SAP システム内のデータをリアルタイムに取

BIP Smart FAQ

keysql42_usersguide

Hitachi Storage Management Pack for VMware vrealize Operations サポートマトリクス (REV.04-00) Hitachi Storage Management Pack - Hitachi Storage Management Pack

intra-mart WebPlatform/AppFramework

製品組み込み手順書 Oracle Tuxedo (Linux版)  

- 2 Copyright (C) All Rights Reserved.

WebアプリケーションサーバJBoss入門

untitled

作業環境カスタマイズ 機能ガイド(応用編)

リリース情報

SQL Server Integration Services 連携機能編

CLUSTERPRO MC StorageSaver for BootDisk 2.1 (for Windows) インストールガイド 2016(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

プロバイダ ユーザーズガイド

アプリケーション補足説明書(Office2003)

Systemwalker Network Assist V10.0/V11.0L10/11.0

how-to-decide-a-title

intra-mart FormatCreator Version6.1

Hitachi Application Server ファーストステップガイド

PRIMEQUEST 1000シリーズ WS2008 NTP設定手順書

URL AdobeReader Copyright (C) All Rights Reserved.

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Java言語環境Java2SEついて

uCosminexus EUR 08-20新機能のご紹介

Red Hat Enterprise Linux Server 7 動作確認表

Transcription:

開発 運用時のガイド [UNIX] JDK8 への移行に伴う留意点 2015.10 O c t o b e r

はじめに 本書は 開発 運用フェーズで使用するドキュメントとして Java TM Development Kit 8 への移行に伴う 留意点について記述しています 1. 対象とする読者本書は Java TM Development Kit 8 を使用し システムを設計 構築 運用する立場にある方を対象としています 商標類 HITACHI は ( 株 ) 日立製作所の商標または登録商標です Oracle と Java は Oracle Corporation 及びその子会社 関連会社の米国及びその他の国における登録商標です This product includes software developed by IAIK of Graz University of Technology. その他記載の会社名 製品名は それぞれの会社の商標もしくは登録商標です 英略語の表記本書では 英略語を次のように表記しています 表記 Java Java EE Java SE JDK 製品名 Java TM Java TM Platform, Enterprise Edition Java TM Platform, Standard Edition Java TM Development Kit JDK TM 発行元株式会社日立製作所情報 通信システム社 IT プラットフォーム事業本部 All Rights Reserved. Copyright (C) 2015, Hitachi, Ltd. I

目次 1 JDK8 への移行に伴う留意事項 1 1.1 JDK8 への移行に伴う留意事項... 2 i

1 JDK8 への移行に伴う留意事項 JDK8 への移行に伴う留意事項を説明します 1.1 JDK8 への移行に伴う留意事項 1

1.1 JDK8 への移行に伴う留意事項 (1) ロケール依存サービスについて Java SE 8 から, ロケールに依存するサービスを指定できるようになりました ロケール依存サービスの指定には java.locale.providers プロパティを使用します 指定可能なロケール依存サービスと java.locale.providers プロパティの詳細は, 下記の URL を参照してください http://docs.oracle.com/javase/jp/8/docs/technotes/guides/intl/enhancements.8.html ロケール依存サービスの指定は,JavaVM オプションを用いて Java EE サーバの起動時に行います この指定により,Java EE アプリケーションを含む Java EE サーバ全体のロケールが変わってしまうことがあるため, ロケール依存サービスを指定する場合は影響範囲に注意し, 運用に問題のない範囲で行ってください また,Java EE サーバ起動後に Java EE サーバや Java EE アプリケーションからロケール依存サービスの指定を変更することはできません なお, ロケール依存サービスの指定によっては, ロケールに依存する表記や処理に影響する場合があります 例えば, ロケール依存サービスの指定によっては,Java EE アプリケーションで明示的にロケールを指定していても, 指定とは異なるロケール依存サービスが選択され, 日付 時刻 通貨等の表記や処理が変更される場合があります 以下に, ロケール依存サービスによる影響個所の確認観点の例を示します (a) ロケール依存サービスは java.util.spi.localeserviceprovider クラスや java.util.spi.localeserviceprovider クラスのサブクラスにより実装されます そのため, これらのクラスのカスタマイズ対象のロケールに影響する場合があります カスタマイズ対象のロケールを観点として, Java プログラム内にロケール依存サービスによる影響個所がないか確認してください java.util.spi.localeserviceprovider の詳細は, 下記の URL を参照してください https://docs.oracle.com/javase/jp/8/api/java/util/spi/localeserviceprovider.html (b) ロケール依存サービスの変更による影響がある個所では, ロケールを明示的に指定している可能性があります ロケールの指定に使用する定数 ( ロケール定数 ) を観点として,Java プログラム内にロケール依存サービスによる影響個所がないか確認してください よく使われるロケール定数の詳細は, 下記の URL を参照してください https://docs.oracle.com/javase/jp/8/api/java/util/locale.html 例えば,java.util.Locale.JAPAN は国を指定するのに使用する定数です (2) クラスファイルのバージョンについて Java SE 8 からクラスファイルのバージョンが 52 になりました これにより, ソースコードでラムダ式を利用した場合に,javac コマンドが出力する invokedynamic 2

バイトコード を出力するようになりました クラスファイル変換等でクラスファイルを出力する場合, 出力するクラスファイルのバージョンとクラスファイルのフォーマットが一致している必要があります 一致していない場合は, クラスロード時に java.lang.verifyerror が発生するため, クラスファイル変換等の新仕様対応を行ってください なお, クラスファイルのバージョンはバイナリエディタや javap コマンドを使用してクラスファイル内の major_version から確認してください また,javac コマンドのクロスコンパイルオプション (target/source) を用いることで指定したバージョンのクラスファイルを作成することもできます ただし, その場合はクラスバージョンに対応する Java SE の機能までしか使用することはできません (3) split() の仕様変更について Java SE 8 では以下の API の仕様が変更されました -java.lang.string.split() -java.util.regex.pattern.split() なお, シグネチャが異なる同名のメソッドも全て該当します split メソッドは指定された正規表現に一致する位置で文字列を分割します Java SE 7 では, 分割する文字列の先頭でゼロ幅一致した場合, 分割結果の先頭に空の文字列を生成していましたが,Java SE8 からは先頭に空の文字列を生成しません Java SE 7 までの split() を使用して, かつゼロ幅一致した場合の処理を行っている Java プログラムにおいては,Java SE 8 からはゼロ幅一致した場合の分割結果が変わることに注意してください [ 例 ] < ソース > String[] result = "Test".split(""); < 実行結果 :Java SE 7 以前 > result = [,T,e,s,t] < 実行結果 :Java SE 8> result = [T,e,s,t] 例では空文字列をパターンとしていますが, これ以外にも 分割する文字列の先頭でゼロ幅一致する を満たす正規表現を指定した場合にも該当します なお,String と Pattern では split() メソッドの this と第 1 引数の意味が逆になりますので, 引数の指定の仕方に注意してください API の詳細は Java SE API リファレンスを参照してください -java.lang.string.split() 3

http://docs.oracle.com/javase/jp/8/docs/api/java/lang/string.html -java.util.regex.pattern.split() http://docs.oracle.com/javase/jp/8/api/java/util/regex/pattern.html (4) java.lang.management.managementfactory.getmemorypoolmxbeans() の挙動変更について Java SE 8 から,Permanent 領域が廃止され Metaspace 領域が導入されました それに伴い,java.lang.management.ManagementFactory.getMemoryPoolMXBeans() で返却される MemoryPoolMXBean の配列の順番が変更されました Java SE 7 までは配列の順番は以下の通り固定となっていました (a)codecache 領域 (b)eden 領域 (c)survivor 領域 (d)tenured 領域 (e)permanent 領域 Java SE8 では, 上記のうち Permanent 領域が Metaspace 領域に変更となります さらに, 配列の順番がオプション構成により変動します よって, 上記メソッドを使用している場合, 配列の順番に注意し, 意図した領域の情報が取得できているか確認してください なお, 取得した領域は,java.lang.management.MemoryPoolMXBean.getName() で領域名を確認できます (5) Permanent 領域の廃止と Metaspace 領域の導入について Java SE 8 では, ロードされたクラスなどの情報が格納される領域を Metaspace 領域と呼びます なお, Java SE 7 までは, ロードされたクラスなどの情報が格納される領域は Permanent 領域でしたが,Java SE 8 では廃止されました Metaspace 領域の導入に伴い,JavaVM オプションなど下記の影響があります (a)permsize,maxpermsize の JavaVM オプションが廃止されます代わりに,MetaspaceSize,MaxMetaspaceSize というオプションが導入されます これらについては, Java SE 7 までの Permanent 領域の設定の考え方と同様に, アプリケーションで必要なクラス情報のサイズを見積もり, その値を設定することを推奨します (b)maxmetaspacesize のデフォルト値は MaxPermSize と異なります MaxMetaspaceSize オプションのデフォルト値は,int 値で表現可能な最大値として定義されており, ユーザが特に指定しない場合は実質的に無限大となり,Metaspace のサイズに起因する OutOfMemoryError が発生しません ただし,Metaspace 領域が肥大化すると, メモリスワップの多発によりシステム全体がスローダウンするなど, 他のプロセスへの影響が起こり得ます Metaspace に関する詳細は, ユーザーズガイドを参照してください 4 - 以上 -