VirtualBox + Ubuntu(Xfce4)でJava + Springの開発環境構築


まえがき

壊しても良いLinux環境をひとつもっておくと何かと便利なので用意する。
Xfce4はUbuntuのデスクトップ環境の中で比較的軽いので採用。

ゴール

UbuntuでJava + SpringのWebアプリケーション開発ができるような状態を目指します。

前提:筆者の環境

  • MacBook Pro (Retina, 15-inch, Mid 2015)
  • OS:MacOS Catalina 10.15.4
  • プロセッサ:2.2 GHz クアッドコアIntel Core i7
  • メモリ:16 GB 1600 MHz DDR3
  • グラフィックス:Intel Iris Pro 1536 MB

環境構築手順

VirtualBoxのDL

https://www.virtualbox.org/wiki/Downloads
※今回はVirtualBox 6.1.6 を利用

UbuntuイメージのDL

https://www.ubuntulinux.jp/download
※今回はUbuntu 20.04 LTSを利用。

VMの初期設定

解像度設定

MacのRetinaの場合、動きがもっさりすることがある。
表示倍率200%が足を引っ張っているらしいので、これを100%にし、VirtualBoxの解像度を下げて起動するといい感じになる。

/Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app
→ Finderで開く
→ 情報を見る
→ 「低解像度で開く」にチェック

VirtualBoxの設定から、「ディスプレイ」→「表示倍率」を100%に変更

新規作成時

HDDを10GB -> 32GBに変更

新規作成後

大項目 中項目 小項目
一般 高度 クリップボードの共有:双方向
一般 高度 ドラッグアンドドロップ:双方向
システム マザーボード メインメモリー:8192MB
システム マザーボード 起動順序:フロッピーを外す
システム マザーボード チップセット:ICH9
システム プロセッサー プロセッサー数:2
システム アクセラレーション 準仮想化インターフェース:KVM
ディスプレイ スクリーン ビデオメモリ:256MB
ディスプレイ スクリーン ディスプレイ数:1
ディスプレイ スクリーン アクセラレーション:有効化
ディスプレイ スクリーン アクセラレーション:有効化
ストレージ コントローラ:IDE ※初期起動時のみ:DLしてきたUbuntuのisoイメージ
共有フォルダー 共有用のフォルダを選択 マウントにチェックを入れる

Ubuntuのインストール

VMを起動したら、画面の指示に従ってインストール。
最初の言語選択で日本語を選ぶ。
-> 再起動

Ubuntuの各種設定

各種アップデート対応とGuestAdditionのインストールを済ませる。

Xfce4のインストール

# Synapticパケージマネージャをインストール
$ sudo apt install synaptic

# conky プロセスをキル
$ killall conky

# 検索窓に`xfce4`と入れて以下をインストール
・xfce4
・xfce4-goodies

-> 再起動

Ubuntu(Xfce4)起動

ログイン画面で、※マークからxfce4セッションを選択、ログイン

※画像はUbuntu 20.04の例

日本語の設定(Option)

IBus-Mozcを参照:http://www.fuukemn.biz/page74-ubuntu-xfce.html

ユーザー配下を英語に

$ LANG=C xdg-user-dirs-gtk-update

各種開発ツールをインストール

コマンド類

  • curl
  • vim

Java / SDKMAN

公式:https://sdkman.io/install
公式:https://sdkman.io/jdks

# SDKMANのインストール
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

# Javaのインストール
$ sdk list java
$ sdk install java

※ MavenやGradeもこれでOK
$ sdk install maven
$ sdk install gradle

VSCode

公式:https://code.visualstudio.com/docs/setup/linux
※今回はコマンドラインからインストール

$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install code

Git / Github

# インストール
$ sudo apt install git

# 初期設定
$ git config --global user.name "ottoman"
$ git config --global user.email "[email protected]"

# sshキーの生成&Githubに登録
$ cd ~/.ssh(なければ作る)
$ ssh-keygen -t rsa
 -> 公開鍵(id_rsa.pub)の中身をGithubに登録

# commit エディタをvimに
$ git config --global core.editor vim

SpringToolSuite(STS) + 日本語化

インストール

公式:https://spring.io/tools よりダウンロードし解凍 ※今回はsts-4.6.1.RELEASE

# STS用のディレクトリをopt配下へ作成
$ sudo mkdir /opt/sts

# 配置
$ cp -r sts-4.6.1.RELEASE /opt/sts/

起動用シェルを作成

sts.sh
#!/bin/bash
JDK_VERSION=11.0.7.hs-adpt
STS_VERSION=4.6.1

export JAVA_HOME=/home/swat/.sdkman/candidates/java/$JDK_VERSION
export PATH=$PATH:$JAVA_HOME/bin

cd /opt/sts/sts-$STS_VERSION.RELEASE/
./SpringToolSuite4

ランチャーを作成

先程のシェルを呼び出すように設定

日本語化

公式:https://mergedoc.osdn.jp/ よりLinux版をダウンロード

# 解凍した中にあるfeaturesとpluginsの中身をsts-4.6.1.RELEASEのfeaturesとpluginsにコピー
$ sudo cp -r ./features/jp.sourceforge.mergedoc.pleiades/ /opt/sts/sts-4.6.1.RELEASE/features/
$ sudo cp -r ./plugins/jp.sourceforge.mergedoc.pleiades/ /opt/sts/sts-4.6.1.RELEASE/plugins/

# iniファイルに下記を追記(sts-4.6.1.RELEASE/SpringToolSuite4.ini)
-Xverify:none
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

これで起動すれば日本語化している

Postmanのインストール

sudo snap install postman

NVM / Node.js (おまけ)

公式:https://github.com/nvm-sh/nvm#install--update-script

# NVMのインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

# .bashrcを確認
$ cat .bashrc | grep -A3 'export NVM_DIR'
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# .bashrcを反映
$ source ~/.bashrc

# nvmのバージョン確認
$ nvm --version
0.35.3

# Node.jsのインストール
$ nvm ls-remote
$ nvm install v12.16.3

最後に

こんなのもいれるかも

  • DBクライアント