【Java】LinuxでJava環境を構築してJARを実行する

実行環境

動作確認を行った環境は以下になります。

vagrant@vagrant:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

vagrantで作成した環境です。

stmtk358.hatenablog.com

Javaのインストール

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

sudo apt update
sudo apt install default-jre
sudo apt install default-jdk

以下でインストールされていることを確認します。

vagrant@vagrant:~$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing)
vagrant@vagrant:~$ javac -version
javac 11.0.11

www.digitalocean.com

www.sejuku.net

Javaの動作確認

以下のコマンドを実行して「Hello World!!」と表示されれば成功です。

vi Hello.java
javac Hello.java
java Hello
public class Hello {
        public static void main(String[] args) {
                System.out.println("Hello World!!");
        }
}

JARの作成と実行

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

mkdir -p src/jp/co/sample/lib
vi src/jp/co/sample/lib/Human.java
vi src/jp/co/sample/App.java
vi manifest2.mf
javac -sourcepath src -d classes src/jp/co/sample/App.java
jar cvfm sample.jar manifest.mf -C classes .
java -jar sample.jar Hoge Fuga Piyo
package jp.co.sample.lib;

public class Human {
        private String name;
        public Human(String name) {
                this.name = name;
        }
        public void introduceMyself() {
                System.out.println(String.format("My name is %s.", this.name));
        }
}
package jp.co.sample;

import jp.co.sample.lib.Human;

class App {
        public static void main(String[] args) {
                for(String arg : args) {
                        Human human = new Human(arg);
                        human.introduceMyself();
                }
        }
}
Main-Class: jp.co.sample.App
vagrant@vagrant:~$ java -jar sample.jar Hoge Fuga Piyo
My name is Hoge.
My name is Fuga.
My name is Piyo.

www.fenet.jp