Beginning Java With CLI は、 Java 言語でコマンドラインツールを作りながら、実践的な Java について学ぶチュートリアルです。Mac を前提にしています。
目次 [TOC]
-
Brewをインストール
- 管理者権限があるユーザーとしてログイン
- brew をインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Javaをインストール
- 管理者権限があるユーザーとしてログイン
openjdkをインストール
brew install openjdk
-
環境変数PATHにBrewを追加する
-
普段利用するユーザーとしてログイン
-
起動スクリプトに環境変数の宣言を追加する
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
-
-
環境変数JAVA_HOMEにjavaのフォルダを追加
- 普段利用するユーザーとしてログイン
- 環境変数 JAVA_HOME を確認
echo $JAVA_HOME
- Javaのフォルダが環境変数の中になければ、起動スクリプトに環境変数の宣言を追加する
echo 'export JAVA_HOME="/opt/homebrew/opt/openjdk"' >> ~/.zshrc
-
環境変数PATHにjavaコマンドが存在するフォルダを追加
- 普段利用するユーザーとしてログイン
- 環境変数 JAVA_HOME を確認
echo $PATH | grep openjdk
- Java のパスがなければ、起動スクリプトに環境変数の宣言を追加する
echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.zshrc
-
動作確認
- 普段利用するユーザーとしてログイン
- Javaのバージョンを表示
結果
java --version
openjdk 25.0.1 2025-10-21 OpenJDK Runtime Environment Homebrew (build 25.0.1) OpenJDK 64-Bit Server VM Homebrew (build 25.0.1, mixed mode, sharing) - Javac のバージョンを表示
結果
javac --version
javac 25.0.1
-
フォルダ階層を作る
以下のコマンドを実行しフォルダ階層とJavaファイルを作る
mkdir -p c02_hello_java/bin mkdir -p c02_hello_java/src/mypkg touch c02_hello_java/src/mypkg/HelloJava.java
以下のような階層ができる
c02_hello_java ├── bin └── src └── mypkg └── HelloJava.java -
Javaコードを書く
src/mypkg/HelloJava.javaを編集するpackage mypkg; public class HelloJava { public static void main(String[] args) { System.out.println("Hello Java"); } }
-
コンパイルする クラスファイルの出力先として、
binフォルダを指定する。cd c02_hello_java javac src/**/*.java -d bin
以下のような階層ができる
├── bin │ └── mypkg │ └── HelloJava.class └── src └── mypkg └── HelloJava.java
4通りの方法で実行してみる
-
1行で実行する
java -classpath bin mypkg.HelloJava
結果
Hello world -
クラスパスを環境変数に指定して実行する
export CLASSPATH=bin java mypkg.HelloJava -
シェルスクリプトから実行する
-
シェルスクリプトフォルダ
shを作るmkdir sh touch sh/hellojava
-
テキストエディタで
sh/hellojavaを編集する#!/usr/bin/env bash # このシェルスクリプトが存在しているフォルダの絶対パス THIS_DIR="$(cd $(dirname $0);pwd)" # 一つ上を経由したbinフォルダのパスをクラスパスに追加 export CLASSPATH="${THIS_DIR}/../bin" # このシェルスクリプトの入力引数をJavaアプリに渡す java mypkg.HelloJava "$@"
-
実行可能ファイルにする
chmod +x sh/hellojava
-
実行する
./sh/hellojava
結果
Hello world
-
-
メインクラス指定無しのjarファイルを作成して実行
-
Jarをビルドする
jar --create --file hello_jar.jar -C bin . -
実行する
jarファイルをクラスパスに追加して、javaコマンドから実行できるjava -cp hello_jar.jar mypkg.HelloJava
結果
Hello world
-
-
メインクラスを指定するjarファイルを作成して実行
-
Jarをビルドする
jar --create --file hello_jar.jar --main-class mypkg.HelloJava -C bin . -
実行する
-jar FILEオプションを指定し、javaコマンドからメインクラスを実行できるjava -jar hello_jar.jar
結果
Hello world
-