この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時:2026-05-18 01:50:51

タイトル: ライブラリ

本稿は Java のライブラリに関する記事です。Java 標準ライブラリ以外で、業務やフレームワーク開発で広く利用されている外部ライブラリを扱います。

子ページからライブラリを選択してください。

本ページの子ページ

  • Hibernate — ORマッピング (ORM) の代表的な実装
  • JasperReport — 帳票出力ライブラリ

Java ライブラリの位置づけ

分類説明
標準ライブラリ (JDK 同梱)JDK インストールだけで使えるjava.utiljava.niojava.time
外部ライブラリ (jar)Maven / Gradle で取得して classpath に追加Apache Commons、Guava、Jackson
フレームワークアプリ全体の枠組みを提供Spring、Jakarta EE

業務でよく使われる外部ライブラリ

カテゴリライブラリ役割
ロギングSLF4J、Logback、Log4j 2ログ出力 (API と実装の分離)
JSONJackson、GsonJSON シリアライズ/デシリアライズ
HTTPクライアントApache HttpClient、OkHttp、Java 11+ HttpClient外部API呼び出し
ORM / DBHibernate、MyBatis、jOOQRDB アクセス
テストJUnit 5、Mockito、AssertJ、Testcontainersユニット・統合テスト
ユーティリティApache Commons Lang/IO、Google Guava文字列・コレクション・I/O のヘルパ
帳票・PDFJasperReport、iText、Apache PDFBoxPDF / 帳票生成
ExcelApache POIxls / xlsx の読み書き
バリデーションHibernate Validator (Jakarta Bean Validation)入力チェック
セキュリティSpring Security、BouncyCastle認証・暗号
並行・非同期RxJava、Project Reactorリアクティブストリーム
日付・時刻標準の java.time (Java 8+)、ThreeTen-Extra日付計算
DI コンテナSpring、Guice依存性注入

取得方法 (Maven / Gradle)

ツール記述ファイル
Mavenpom.xml<dependency>org.apache.commons:commons-lang3:3.14.0
Gradlebuild.gradledependenciesimplementation 'org.apache.commons:commons-lang3:3.14.0'

ライブラリ選定の観点

  • 活発に保守されているか — リリース頻度・Issue/PR 対応・最新 Java バージョン対応
  • ライセンス — Apache 2.0 / MIT / EPL / LGPL 等。商用利用条件を確認
  • 依存の重さ — 推移的依存で大量に jar が引き込まれないか
  • セキュリティ — CVE 情報を mvn dependency-check や OSS 監視サービスで定期チェック
  • エコシステム — 採用フレームワーク (Spring 等) との相性
  • API の安定性 — メジャーバージョン更新の破壊的変更頻度

注意点

  • ロガーは API と実装を分離: SLF4J を直接使い、実装は Logback / Log4j 2 を選ぶ。java.util.logging を直接呼ばない
  • Log4j 2 の Log4Shell (CVE-2021-44228) など大型脆弱性は依存版数管理を怠ると致命傷
  • 同じ機能のライブラリ重複に注意 (Jackson と Gson が同居するとメンテ範囲が増える)
  • BOM (Bill of Materials) を利用してファミリ単位でバージョンを揃える (Jackson BOM 等)

関連