【CLI不要】VSCodeでJava+SpringBoot環境を作る（Windows・Mac共通）

# はじめに
Javaは環境構築が大変という記事をよく見かけますが、今回はそれを払拭するために最短で構築する手順をまとめてみました。Javaだけではなく、SpringBootの構築も同時に行います。

# ゴール

VSCodeでJava11 + SpringBootの環境を構築すること。

# 環境（2021/09/05時点）

- [Mac版] macOS Big Sur 11.5.2
- [Windows版] Windows10
- JDKは未インストール
- VSCodeインストール済

# VSCodeのセットアップ

## プラグインインストール
以下のプラグインをインストールする。

- Extension Pack for Java
- Spring Boot Extension Pack

## JDKインストール

メニューバーの「View」→「Command Palette」を選択する。
表示されたコマンドパレット上で「Configure Java Runtime」を選択する。

![スクリーンショット 2021-09-05 9.44.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53830/46cfc77e-85ee-b173-168c-d09f8e7c2571.png)

ダウンロード後、インストーラーにしたがってインストールを行う。
インストール完了後、VSCodeを再起動する。

# プロジェクト作成

メニューバーの「View」→「Command Palette」を選択する。
表示されたコマンドパレット上で「Spring Initializer: Create a Maven Project...」を選択する。

|項目|設定値|
|:--|:--|
|Specify Spring Boot Version|2.5.4|
|Specify Project Language|Java|
|Input Group Id|com.example|
|Input Artifact Id|demo|
|Specify Packaging type|Jar|
|Specify Java version|11|
|Search for dependencies|Spring Web| 

作成後に下図のようなポップアップが右下に表示されるので、「Open」をクリックする。

![スクリーンショット 2021-09-05 9.35.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53830/48147a5d-430e-b69b-6131-9b4a7f740160.png)

# 動作確認

作成したプロジェクト内にある```DemoApplication.java```を編集する。

```java:src/main/java/com/example/demo/DemoApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@GetMapping
	public String hello(){
		return "hello";
	}
}
```

メニューバーの「Run」→「Start Debugging」をクリックし、デバッグを開始する。

```terminal
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.4)

2021-09-05 12:54:10.088  INFO 16536 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication using Java 11.0.12 on devnoMacBook-Air.local with PID 16536 (/Users/dev/workspace/demo/target/classes started by dev in /Users/dev/workspace/demo)
2021-09-05 12:54:10.093  INFO 16536 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
2021-09-05 12:54:11.775  INFO 16536 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-09-05 12:54:11.818  INFO 16536 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-09-05 12:54:11.820  INFO 16536 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.52]
2021-09-05 12:54:11.957  INFO 16536 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-09-05 12:54:11.957  INFO 16536 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1697 ms
2021-09-05 12:54:12.577  INFO 16536 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-09-05 12:54:12.608  INFO 16536 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 8.316 seconds (JVM running for 9.524)
```

上記のように表示されたら、ブラウザのアドレスバーに```http://localhost:8080```を入力し、画面に「hello」が表示されることを確認する。

# おわりに
今回はクリーンな状態から構築を行なったので、エラーでハマることはありませんでしたが、実際はすでに他のツールやライブラリなどがインストールされている状態での構築になると思うので、もしかしたら構築中に想定外のエラーに出くわすかもしれません。そのときは大変申し訳ありませんが、各自ご対応のほどよろしくお願いします。