Javaの開発環境(Mac, VS Code)

## はじめに

Macにて、EclipseじゃなくてVsCode(Visual Studio Code)で
Javaの開発を行いたいという方に向けての記事となります。

VsCodeではなくEclipseで開発したい方は
Qiitaに「[Javaの開発環境(Mac, Eclipse)](https://qiita.com/aoyaman/items/9484163459d974b79f68)」をあげてますので、そちらを参照ください。

Javaのインストールがまだの方は
「[Javaのインストール(Mac, Homebrew, 複数バージョン管理)](https://qiita.com/aoyaman/items/fdbc1b35ce841f730afc)」
を参考にインストールを先にすませておいてください。

動作確認した私の環境は以下の通りです。

```
OS: macOS Catalina(バージョン 10.15.4)
Java: 11.0.2
```

## VsCodeのインストール

既にインストール済みの方は読み飛ばしてください

公式サイトの[ダウンロードページ](https://code.visualstudio.com/download)
にて、Macを選んでダウンロードします。

![vscodeダウンロードページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/06483fe7-a87d-1b87-771f-ee275ccebe97.png)

「VSCode-darwin-stable.zip」というファイルがダウンロードされると思いますので、
ダブルクリックします。

↓

「Visual Studio Code.app」というファイルが同じフォルダ上に出来ます。

このファイルをアプリケーションフォルダにコピーしてください。

↓

アプリケーションフォルダにて「Visual Studio Code.app」を右クリックし、
「開く」を押して起動してください。

※このファイルはインターネットからなんちゃらって確認Popupが表示されたらOKを押します。


## 拡張機能にて「Java Extension Pack」をインストール

1. 左端のメニューから拡張機能の画面を開きます
2. 「Java Extension」で検索します
3. 検索結果の中らから「Java Extension Pack」を選びます
4. インストールボタンを押してインストールします

![拡張機能__Java_Extension_Pack_と_「Javaの開発環境_Mac__VS_Code_」を編集_-_Qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/0e360753-f1ad-e7b5-7f13-873c0bea7f9b.png)

↓

JavaOverviewやプレビューページが表示されます。
ウィンドウの右下に「Enable Semantic highlighting for Java by default?」と表示されたら「Enable」を押します。

![Java_プレビュー__v0_9_0_md.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/3428f9da-c829-6d88-7831-42dba89d927c.png)

## Javaのプログラムを書く

### まずはMain.javaというファイルを用意します

1. 左端のメニューからエクスプローラーを開く
2. 「フォルダーを開く」ボタンを押す
3. 任意のフォルダを選び
4. 開くボタンを押す
5. 新規ファイルを作成し
6. ファイル名を「Main.java」とする

![Visual_Studio_Code_explorer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/9850f7d6-eff4-62c4-3aec-a5e85578820c.png)
![フォルダを開く.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/fcc75824-9c35-57b8-5dfc-72dd634394ef.png)
![ファイルを作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/d689f579-6ef4-d44a-07fb-3ebd532acfdc.png)
![ファイル名を書く.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/1a562a4f-4f66-62e5-8d3f-75b26ef00711.png)

###　次に、Main.javaの中を実装します。

次のコードを記入します。

```java
class Main {
  public static void main(String[] args) {
    String msg = "";
    msg += "Hello ";
    msg += "World!";
    System.out.println(msg);
  }
}
```
![Mainjavaを書く.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/66dbf60e-417a-4415-60fe-a404524691d9.png)

### 試しに、セミコロンを一つ消してみます

セミコロンを消すと(保存してない状態でも)赤色の波線でエラーを教えてくれます。

![コンパイルエラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/e14ff3d3-610a-deb6-529a-445843067e18.png)

左下のエラー表示のアイコンをクリックするとエラーの詳細が表示されます。
![エラー情報を表示.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/32c2f032-0ead-3769-459d-7d0150b555c3.png)


## Javaのプログラムを動かす

### まずは普通に実行してみる

class Main
と
  public static void main(String[] args) {
の間に「Run | Debug」とボタンが表示されていますのでそれを押すと実行されます。
ターミナルに「Hello World!」と表示されます。
![デバッグ実行１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/3773a846-7cf4-40e9-c507-944112961b56.png)

左のメニューに「launch.json ファイルを作成します」というリンクが表示されたら
それを押します。
すると、左のメニューがデバッグ実行っぽい画面に変更されます。
![launch_json作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/5e57f47a-ee2d-4ac6-d1fe-3e3023576aec.png)

### デバッグ実行する

Main.javaの５行目の左端をクリックして「ブレークポイント」をセットします。
![ブレークポイントをはる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/9c3e0cec-3c98-9b9c-9a8d-ea0681b055da.png)

次に、左のメニューの上端の実行ボタンを押します。すると５行目で処理がとまります。
![デバッグ実行２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/9a293ce5-05e4-439a-da75-3b01b5ca8247.png)

上端に表示されたアイコンたちの中の「Step over」ボタンを押すと
１行づつ進んでいく

![ステップオーバー１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/ac3ddcaf-0cc5-cf54-151d-c9e5609e8271.png)
![ステップオーバー２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150699/06427c87-8fd7-805f-824d-4258dff43d38.png)

### おわりに

MacでVisual Studio Codeを使ったJavaの開発環境構築、いかがでしたでしょうか？

デバッグ時のStepOverやStepInなどのボタンのことや
ウォッチ式、コールスタック、ブレークポイントなどはIDE(統合環境)で使われてる形と同じだと思います。
「デバッグ実行」などでググればこの辺りの情報はたくさん出てくると思いますので、ここでは割愛させてもらいます。

おわり。