Java
2022.03.04
Javaのおすすめライブラリ一覧!インストールから使い方まで解説
2022.03.04

プログラミング言語を学習していると登場するのが「ライブラリ」という存在です。

Javaのライブラリとは一体何なのか、どう使うのか、といった疑問にお答えします。


1.Javaのライブラリとは?

現実世界における「ライブラリ」はlibrary、つまり「図書館」という意味です。


図書館はその名の通り、書物や雑誌等を収集・保管しており、その多くは利用者に貸し出しを行っています。


ではプログラミングにおける「ライブラリ」はというと、汎用的な「クラス(部品)」をひとまとめにしてあるもの。利用者はその中で必要だと思うクラスを選び、さまざまなアプリで利用できるのです。


カレンダーで日数計算をする、データベースに接続する等のよく使う機能が用意されており、利用することでその機能をプログラミングする必要が無くなる、大変便利なものです。


Javaライブラリには、インストールせずに最初から使える「標準ライブラリ」と、インストールが必要な「サードパーティ製ライブラリ」が存在します。

2.Javaのおすすめライブラリ一覧


さまざまな分野で採用されているJavaには、便利なライブラリがオープンソースとして公開されています。

今回は、開発の現場でもよく使われるライブラリを紹介します。

①GUI

GUIは「グラフィカル・ユーザー・インターフェース」の略。PCやスマートフォンでグラフィカルな画面でプログラムを操作するための方法です。


Javaでは、GUIライブラリを使うことでさまざまなOSで動作するGUIアプリを開発できます。

Swing

Swingは、Javaの標準ライブラリに含まれるGUIキットで、JDKをインストールすると自動でインストールされています。

文字やボタンを簡単に配置でき、簡単なゲームも作成可能です。


Swingの基本的な使い方は以下のページで紹介していますので、ゲーム開発に興味がある方はこちらも確認してみてください。

②CSV読み込み・出力

外部システムとの連携において、ファイルベースのやりとりをする場合に多く用いられるのがCSVです。


CSVはテキストベースであるため、解析を自前で実装することもできますが、ライブラリを利用することでより容易に扱うことが可能です。

Open CSV

シンプルにCSVを取り扱うことができるライブラリで、CSVを一行ずつ読み込んで処理することを得意としています。

http://opencsv.sourceforge.net/

③JSON

JSONは、「JavaScript Object Notation」の略称で、その名の通り元々はJavaScriptで利用するフォーマットです。


フロントエンドの多くがJavaScriptを利用しているという状況から、主にWebAPIのレスポンスとして利用されます。

Jackson

JSONとJavaBeansの相互変換を可能とするライブラリであり、多くのWeb系フレームワークで採用されています。

https://github.com/FasterXML/jackson

④画像処理

アップロードされた画像のリサイズやカメラで撮影した画像の解析を行う場合には、画像処理のライブラリを活用しましょう。

OpenCV

OpenCVは画像処理に特化したソフトウェアで、主にコマンドラインから実行します。


別途OpenCVのソフトウェアをインストールする必要がありますが、Java向けのライブラリを利用することで容易に利用可能です。
https://opencv.org/

⑤グラフ

金融系のシステムやマーケティングを主とするようなシステム開発では、データ解析だけでなくグラフにより視覚化が必要になる場合もあります。

JFreeChart

Javaでグラフを扱うためのライブラリで、折れ線グラフや円グラフといったさまざまなグラフ描画を実現します。

https://www.jfree.org/jfreechart/

⑥構文解析

Javaのソースコードを解析したり、JavaのプログラムからJavaのソースコードを生成したりするようなライブラリも存在します。


高速開発を可能とするフレームワークや、セキュリティチェックのための解析ツールなどでは、内部的に構文解析のライブラリを利用しています。


開発者が直接扱うことはほぼありませんが、存在を覚えておいて損はないでしょう。

JavaParser

ソースコード解析や生成が可能なライブラリです。

Javaのコードを読み込んで抽象構文木(AST)として取得可能であり、さまざまな解析に利用することが可能です。

https://javaparser.org/

⑦ssh

Linuxなどのサーバーへログインして操作する場合には、TeraTermをはじめとするGUIを利用することが多いのですが、Javaのコード上からSSHコマンドを実行するライブラリも存在します。

JSch

Jschは、Javaから外部サーバーへSSH接続を行うことを可能とするライブラリです。


SSHで接続してシェルコマンドを実行するほか、SCPコマンドを用いたファイル転送も可能です。

http://www.jcraft.com/jsch/

⑧機械学習

機械学習・ディープラーニングといえばPythonの独壇場ですが、Javaでディープラーニングを実行するためのライブラリも存在します。

DeepLearning4j

Javaでディープラーニングを実現するためのライブラリがDeep Learning4jです。


Javaで動作するため、Javaで開発された金融系のシステムと組み合わせて利用されることもあります。

https://deeplearning4j.konduit.ai/




3.ライブラリの使い方

次に、公開されているライブラリを自身のJavaプロジェクトで利用する方法を紹介します。


ライブラリは、ビルドされたjarファイルとして公開されています。そのjarを自身のJavaプロジェクトで利用しましょう。


ライブラリを利用するための3つの方法を紹介します。


・システムにインストール

・コマンドを利用してコンパイル

・Eclipseを使ったインストール

①事前準備

利用するjarファイルのダウンロード

今回は、例としてJSONを操作するJacksonをインストールしてみましょう。


JacksonのjarファイルはMavenリポジトリとして公開されており、下記のサイトからダウンロードできます。(Mavenについては後述します)

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.13.1


Filesの欄から「jar」を選択することで、jackson-databind-2.13.1.jarをダウンロードできます。

Jacksonのjarファイルをダウンロード

同様に、Jacksonは以下の2つのライブラリをさらに参照しています。あわせてダウンロードしましょう。

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.13.1

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.13.1


以下の3つのライブラリがダウンロードできれば準備完了です。

annotation、core、databindの3つのライブラリ

Jacksonを利用するプログラムを用意

つぎに、Jacksonを利用するプログラムを作成します。

import java.io.Serializable;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {

	/**
	 * JSONを作るためのJavaBeansクラス
	 */
	private static class TestObject implements Serializable{
		
		/** 氏名 */
		private String name;
		
		/** 電話番号 */
		private String tel;
		
		/**
		 * 氏名のgetter
		 * @return name 氏名
		 */
		public String getName() {
			return name;
		}
		/**
		 * 氏名のsetter
		 * @param name 氏名
		 */
		public void setName(String name) {
			this.name = name;
		}
		/**
		 * 電話番号のgetter
		 * @return tel 電話番号
		 */
		public String getTel() {
			return tel;
		}
		/**
		 * 電話番号のsetter
		 * @param tel 電話番号
		 */
		public void setTel(String tel) {
			this.tel = tel;
		}
	}
	
	public static void main(String[] args) throws JsonProcessingException{
		//JSON化するBeanを生成
		TestObject obj = new TestObject();
		obj.setName("田中 太郎");
		obj.setTel("03-1234-5678");
		
		// BeanをJSONに変換
		ObjectMapper mapper = new ObjectMapper();
		String json = mapper.writeValueAsString(obj);
		
		// 出力されたJSON文字列を表示
		System.out.println(json);
		
	}
}

それでは、ライブラリを利用する方法をそれぞれ紹介します。

②インストール

ダウンロードしたjarファイルを、OSのシステムフォルダにコピーします。


この方法を利用することで、インストールしたPCではインストールしたライブラリを自由に利用できます。

WindowsのJREにjarをインストール

Windowsの場合、JavaのJREがインストールされたフォルダにコピーします。


例えば、Javaのインストールフォルダが

C:\Program Files\Java\jre1.8.0_321\

の場合、以下のフォルダにjarをコピーします。

C:\Program Files\Java\jre1.8.0_321\lib\ext


Javaのビルド

以下のコマンドを実行して、プログラムをビルドしましょう。

javac Main.java

その後、以下のコマンドを実行します。

java Main

これで、以下の出力がされることを確認しましょう。

{"name":"田中 太郎","tel":"03-1234-5678"}


この方法の注意点

今回、Java8を利用しての方法として紹介していますが、Java11からはビルドの方法が変更となった関係上、この方法は推奨されていません。


Java11以降を使う場合には、以降に紹介する方法でライブラリを利用してください。

③コマンドでコンパイル・実行

次に紹介する方法は、Javaコードをコンパイルする際に、ライブラリを実行時の「クラスパス」に追加する方法です。


まずは、以下の4つのファイルを同じ場所に配置します。


・Main.java

・jackson-core-2.13.1.jar

・jackson-databind-2.13.1.jar

・jackson-annotations-2.13.1.jar

そして、以下のコマンドでコンパイルします。

javac -cp "jackson-core-2.13.1.jar;jackson-databind-2.13.1.jar;jackson-annotations-2.13.1.jar" Main.java

実行時には、以下のコマンドで実行します。

java -classpath ".;.\jackson-core-2.13.1.jar;.\jackson-databind-2.13.1.jar;.\jackson-annotations-2.13.1.jar" Main

これで、以下のように出力されます。

{"name":"田中 太郎","tel":"03-1234-5678"}

④Eclipseでビルド・パスに追加

最後に、Eclipseを用いてビルドする際の設定方法を紹介します。


Eclipseのプロジェクトを右クリックし、「ビルド・パス」→「外部アーカイブの追加」を選択してください。

ビルドパス→外部アーカイブの追加

先ほどダウンロードしたjarファイルを選択します。

jarファイルを選択

以下のように、「参照ライブラリー」欄にjarが含まれていれば完了です。

参照ライブラリーにjarファイルが含まれている

これでクラスパスにjarが追加されていますので、プログラムを作って実行します。


以下のように実行結果が出力されれば実行成功です。

実行結果

⑤今のトレンドはMavenやGradleを用いたインストール

2022年現在では、ひとつのプロジェクトで多くのライブラリを利用することが多く、ひとつひとつをクラスパスに追加するのは大変です。


そのため現在のJavaプロジェクトの多くは、MavenやGradleといったパッケージ管理ソフトウェアを利用し、ライブラリを管理しています。


MavenやGradleも、今回紹介する手順を自動化する目的で作られたものであるため、内部的な仕組みはしっかり押さえておきましょう。

4.ライブラリを作成してみよう


それでは、最後に自分でライブラリを作る方法を紹介します。


今回は、四則演算を行う簡単なライブラリをEclipseで作ってみます。


Eclipseで新しいプロジェクトを作成しましょう。
今回は、以下の情報でプロジェクトを作成します。

入力項目入力値
プロジェクト名CalculatorLibrary
パッケージmy.library.calculation
新しいプロジェクトCalculatorLibraryを作成

次に、以下のようにソースコードを作成します。

package my.library.calculation;

/**
 * 数値計算用を行うライブラリクラス
 *
 */
public class NumberCalculator {
	
	/**
	 * 加算を行う
	 * @param a 値1
	 * @param b 値2
	 * @return 計算結果
	 */
	public int add(int a, int b) {
		return a + b;
	}
}

作成したら、プロジェクトを右クリックして「エクスポート」を選択します。

プロジェクトをエクスポート

エクスポートの画面が表示されますので、「Java」を開き、「JARファイル」 を選択しましょう。
選択したら、「次へ」をクリックします。

Javaの中のJARファイルを選択

エクスポート先として、生成するjarファイルのファイル名を入力します。
今回は「calculator.jar」を入力し、「次へ」をクリックしましょう。

jarファイルのファイル名を入力

この画面はそのまま「次へ」をクリックします。

次へをクリック

詳しい説明は省略しますが、作成するライブラリがほかのライブラリを参照している場合には、このページで設定することになります。


今回は特に設定する内容はないため、そのまま「完了」をクリックしましょう。

完了を選択

以下のように、jarファイルがエクスポートされていれば作成完了です!

jarファイルがエクスポートされている




5.プログラミング学習ならトレノキャンプへ


トレノキャンプでは、Javaを実践的に学ぶためのコースをオンラインで提供しています。オンデマンド配信なので、いつでも好きなときに受講が可能です。講座の詳しい内容は下記のバナーをクリックしてご覧ください。

この記事をシェア
おすすめの受講コース
  • Javaエンジニア完全パック -実務に必要なスキルを網羅-
  • はじめてのデータベース ~仕組みの理解とSQL~
  • Javaプログラミング本格入門シリーズ①~データ構造とアルゴリズム~
  • Javaで学習するユニットテスト入門 ~JUnitで理解するテスト手法~