この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
更新日時:2026-05-18 01:50:51
タイトル: ライブラリ
本稿は Java のライブラリに関する記事です。Java 標準ライブラリ以外で、業務やフレームワーク開発で広く利用されている外部ライブラリを扱います。
子ページからライブラリを選択してください。
本ページの子ページ
Java ライブラリの位置づけ
| 分類 | 説明 | 例 |
| 標準ライブラリ (JDK 同梱) | JDK インストールだけで使える | java.util、java.nio、java.time |
| 外部ライブラリ (jar) | Maven / Gradle で取得して classpath に追加 | Apache Commons、Guava、Jackson |
| フレームワーク | アプリ全体の枠組みを提供 | Spring、Jakarta EE |
業務でよく使われる外部ライブラリ
| カテゴリ | ライブラリ | 役割 |
| ロギング | SLF4J、Logback、Log4j 2 | ログ出力 (API と実装の分離) |
| JSON | Jackson、Gson | JSON シリアライズ/デシリアライズ |
| HTTPクライアント | Apache HttpClient、OkHttp、Java 11+ HttpClient | 外部API呼び出し |
| ORM / DB | Hibernate、MyBatis、jOOQ | RDB アクセス |
| テスト | JUnit 5、Mockito、AssertJ、Testcontainers | ユニット・統合テスト |
| ユーティリティ | Apache Commons Lang/IO、Google Guava | 文字列・コレクション・I/O のヘルパ |
| 帳票・PDF | JasperReport、iText、Apache PDFBox | PDF / 帳票生成 |
| Excel | Apache POI | xls / xlsx の読み書き |
| バリデーション | Hibernate Validator (Jakarta Bean Validation) | 入力チェック |
| セキュリティ | Spring Security、BouncyCastle | 認証・暗号 |
| 並行・非同期 | RxJava、Project Reactor | リアクティブストリーム |
| 日付・時刻 | 標準の java.time (Java 8+)、ThreeTen-Extra | 日付計算 |
| DI コンテナ | Spring、Guice | 依存性注入 |
取得方法 (Maven / Gradle)
| ツール | 記述ファイル | 例 |
| Maven | pom.xml の <dependency> | org.apache.commons:commons-lang3:3.14.0 |
| Gradle | build.gradle の dependencies | implementation '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 等)
関連