【Java】コマンドラインからjarライブラリを利用する方法

2019年4月22日

本稿ではコマンドラインからjarライブラリを利用する方法を紹介します。

1.ライブラリを用意する

javaのライブラリは通常jarファイルとして提供されています。ネット上で調べるといろいろ出てくると思います。

今回は私がテスト用にライブラリを準備しましたので、これを利用します。

※未テストなのでライブラリをガチで使わないようにお願いします。

nompor-lib.jar

テスト用ライブラリがない方はダウンロードしておきましょう。

2.ライブラリを配置する

ライブラリをコンパイルや実行をしているディレクトリに移動させておきましょう。

3.ライブラリを参照してコンパイル

ライブラリを参照してコンパイルするには、-classpath (jarファイルのパス)とコマンドを実行します。

コンパイルコマンドと合わせるとこんな感じです。

javac -classpath nompor-lib.jar Test.java

cdコマンドでTest.javaの場所に移動してから実行してください。

私はバッチコンパイル派なのでコンパイルのバッチファイルを作成しておきます。

ファイルの中身はこんな感じ

4.ライブラリを参照して実行

ライブラリを参照して実行するのは若干仕様が面倒になっています。

こちらも-classpath コマンドを利用するのですが、jarファイルはフルパスで指定しなければなりません。

実行コマンドと合わせるとこんな感じ

java -classpath C:\Users\ユーザー\Desktop\Web関連\Javaテスト\nompor-lib.jar; Test

特に注意しなければならないのが下記の二点かな
・ライブラリ指定がフルパスであること
・ライブラリ指定の後にセミコロン「;」が必要であること

2019/04/22:追記
Windowsでは、ライブラリ指定の後にセミコロンが必要でしたが、Linux(CentOS環境)では、ライブラリ指定の後に指定するものをコロン「:」にする必要があります。
環境変数の区切り方と同じ感じですね。
Linuxで試す機会があったため一応記録しとくことにしました。

もしカレントディレクトリの指定が面倒なら「%CD%」を指定しましょう。こうすることでコマンドラインの現在の実行ディレクトリを取得できます。

java -classpath %CD%\nompor-lib.jar; Test

さて、こちらもバッチファイル化しておきましょう。

ファイルの中身はこんな感じ

「%CD%」を使用しておけば、実行ディレクトリを変更してもわざわざバッチファイルを書き換えなくて済みますよね。

準備ができたらTest.javaのソースを作成し、ライブラリのクラスを呼び出してみましょう。

Test.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;

import com.nompor.gtk.GTKManager;
import com.nompor.gtk.GameView;
import com.nompor.gtk.animation.LBAMessageDrawAnimation;


public class Test{
	public static void main(String[] args) {
		GTKManager.start(400, 300, new GameView(){

			LBAMessageDrawAnimation mda =
					new LBAMessageDrawAnimation(
							new Rectangle(50,50,300,200)
							, 1
							, 5
					);

			{
				mda.add("こんにちわ。\nコマンドラインでjarライブラリのクラスを呼び出しているよ。\n");
				mda.add("ホンマか?\n", new Font(Font.MONOSPACED,Font.ITALIC,20), Color.GREEN);
				mda.add("はい。", new Font(Font.MONOSPACED,Font.ITALIC,20), Color.BLUE);
				mda.add("呼び出せています。", new Font(Font.MONOSPACED,Font.ITALIC,15), Color.RED);
			}

			@Override
			public void draw(Graphics g) {
				mda.update();
				g.setColor(Color.WHITE);
				mda.fillRoundRect(g);
				mda.draw(g);
			}
		});
	}
}
実行結果

今回はjarファイルに含まれるGTKManager、GameView、LBAMessageDrawAnimationを使用してみました。

実行できればライブラリの参照設定は完了です。