実践Java入門1. Javaの開発環境構築(macOS編)

投稿日:

更新日:

カテゴリ:

Windows環境の場合は実践Java入門1. Javaの開発環境構築(Windows編)をご参考ください。

macOSでもEclipseで使うのかな?!というのは人によるでしょうが、使うとしてもEclipseの設定自体はWindowsとあまり変わりないので、ここではEclipseの代わりにVSCodeを紹介します。

Homebrewのインストール

まずパッケージ管理ツールHomebrewをインストールします。

CUIツール色々インストールするとき、パッケージをダウンロードして各々インストールすると、アップデートや削除が大変になりますので、パッケージ管理ツールを使うと便利です。

ここではmacOSではよく使われるHomebrewを用いて紹介します。

インストール方法は簡単です。ターミナルを開いて下記コマンドをコピペして実行するだけです。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

実行すると、最初はパスワードが求められますが、入力すると以下のようになります。

インストールが終わったら、次のコマンド実行してみてください。

brew -v

現時点私の環境での実行結果は以下ですが、Homebrewのバージョンが表示されれば完了です。

Homebrew 4.2.5

Javaのインストール

ここではJava 17を例とし、OpenJDKを使います。
現時点Spring Initializrで選択できるJavaは17か21かだけですので、特に理由がなければ、バージョンは17で良いかと思います。
ディストリビューションも特に理由がなければOpenJDKで良いでしょう。

以下のコマンドを実行してopenjdk 17をインストールします。

brew install openjdk@17

インストールが終わると、ターミナルは次のように表示されるはずです。

最後のメッセージのところで紹介された以下のコマンドを事項してパスを通しておきましょう。

sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

# JAVA_HOMEの設定はなくても問題ありませんが、参考2を見て、こんなのもありなんだとちょっと印象的ですので、メモとして残しておきます。
# echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.zshrc

ちなみに、ここでJAVA_HOMEを設定しても、VSCodeには響かないみたいでした。。

また、試したところ、下記なくてもjavaコマンド実行できましたが、javaコマンドが見つからないよと言われたら、これ実行してみてください。

source ~/.zshrc

そうすると、次のコマンドのようにjavaコマンドは使えるようになるはずです。

java -version
# 実行結果:
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Homebrew (build 17.0.9+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)

VSCodeの設定

VSCodeについて、まずJava用のエクステンションをインストールすると色々と便利ですので、次のようにVSCodeのエクステンションタブでjavaを検索して「Extension Pack for Java」をインストールします。

次は、VSCode用のJAVA_HOMEを設定します。

{
  "java.jdt.ls.java.home": "/opt/homebrew/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home",
}

このパスはバージョンによって異なりますので、不明の場合は下記コマンドをターミナルで実行してみて、その結果を上の設定にコピペすればいいです。

/usr/libexec/java_home

あとは、もはや好みの領域になりますが、一応私の設定を共有するとsettings.jsonには次のような設定を入れてます。
タブサイズはスペース2にとして、入力中でも自動補完のオプションを表示するように設定してます。

{
  "java.jdt.ls.java.home": "/opt/homebrew/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home",
  "[java]": {
    "editor.tabSize": 2,
    "editor.suggest.snippetsPreventQuickSuggestions": false
  },
}

settings.jsonのは、メニューから設定を開いたら、次のように右上のボタン押したら編集できます。

Spring Bootアプリを動かしてみる

最後に動作確認するため、適当なSpring Bootアプリを作って動かしてみます。

Spring Bootアプリの作り方は、実践Java初級1.2. Webサービス(Spring Initializr)でSpring Bootプロジェクト作成あたりを参考にしていただければと思いますが、お試しだけなら、Dependenciesの選択はなくても大丈夫です。
VSCodeで開くと、しばらく依存関係の解決に時間がかかりますが、読み込みが終わると、次のようにアプリを起動できるはずです。

上記のように、右下に大きいSpringのログが出て、「0.426 seconds」のようにかかった時間が表示されればOKです!

トラブルシューティング

VSCodeでSpringのプロジェクトを開くと、次のようにjava.homeの定義が違うよ的なことが言われたら、もう一度settings.jsonのjava.jdt.ls.java.homeを確認してください。

指定パスは実在するか、異なるパスを重複して2回以上設定していないかとか確認してみてください。

configure runtime for language server java language server requires a JDK 17+ to launch itself. The java.home variable defined in Visual Studio Code settings points to a missing or inaccessible folder (/usr/local/opt/openjdk@17)

 

 

参考

  1. Homebrew – The Missing Package Manager for macOS (or Linux)
  2. Maintaining Java Installs on macOS Using Homebrew Cask

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です