Help us understand the problem. What is going on with this article?

Windows+VS CodeでSpring Boot環境を作る

やりたいこと

WindowsでSpring Bootを動かす環境を作りたい。
せっかくWindowsでやるならWSL上で作ってそれをVS Codeでよしなに開発するのが今風な気がするのでそれを目指す。
まずはWindows上のみで動かし、そのあとWSL上で動かす。

やったこと

Windows上のみで動かす

OpenJDKのインストール

http://jdk.java.net/14/ からWindows用のJDKをzipでダウンロードして展開する。
出来たフォルダを適当なパスへ移動する。今回はC:\Program Files\Java\jdk-14以下に置いた。

また、システム環境変数に下記を設定する。

変数
JAVA_HOME C:\Program Files\Java\jdk-14
Path 先頭に %JAVA_HOME%bin を追加

VS Codeの設定

拡張機能のインストール

下記をインストールした。

java.homeの設定

settings.jsonに下記のようにJDKのパスを指定する(他に項目があれば追加する形で)。

{
    "java.home": "C:\\Program Files\\Java\\jdk-14"
}

設定画面でjava.homeと入れて検索すると、settings.jsonで編集するリンクが出て来る。

Javaのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Create Java Projectを実行する。
保存場所・プロジェクト名を適当に入力したらプロジェクトが作成されてVS Codeで開かれる。
F5でデバッグ実行して、Hello Javaと表示されるか確認出来ればOK。

Springのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Spring Initiallizr: Generate a Gradle Projectを実行する。
(Mavenで作成してもいいけどGradleで)

依存パッケージはひとまず空で作成して、実行する。デバッグコンソールにSpringのロゴが出て実行されればOK。

WSLで動かす

OpenJDKのインストール

WSL上でOpenJDKをインストールする。
aptコマンドでインストール出来るのはOpenJDK11のようなのでこれを使う。

$ sudo apt update
$ sudo apt install -y openjdk-11-jdk

gradleのインストール

aptで入れると古いようだが、ひとまず入れる。

$ sudo apt install -y gradle

VS Codeの設定

拡張機能のインストール

まず下記をインストールする。

インストール後にWSLターミナルでcodeと打つと、WSLの環境を向いたVS Codeが立ち上がるようになる。
その状態でWindows向けのVS Codeでインストールした拡張機能を改めてインストールする。
※インストールボタンのラベルがInstall in WSL:Ubuntuになる。

java.homeの設定

settings.jsonに設定したjava.homeの値を変更する。

{
    "java.home": "/usr/lib/jvm/java-11-openjdk-amd64"
}

Javaのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Create Java Projectを実行する。
保存場所・プロジェクト名を適当に入力したらプロジェクトが作成されてVS Codeで開かれる。
F5でデバッグ実行して、Hello Javaと表示されるか確認出来ればOK。

Springのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Spring Initiallizr: Generate a Gradle Projectを実行する。
依存パッケージはひとまず空で作成して、実行する。デバッグコンソールにSpringのロゴが出て実行されればOK。

Spring Webを試す

Spring Initiallizrでプロジェクト作成時にSpring Webを利用する設定で作成する。
main()があるApplicationクラスに@RestControllerアノテーションを付け、クラス内に適当に下記のようなメソッドを作成する。

@GetMapping("/")
String home() {
    return "Hello!";
}

アプリケーションを動かし、http://localhost:8080/ にアクセスしてHello!が表示されればOK。
リポジトリ:https://github.com/stamefusa/spring-web-demo

参考にしたエントリ

https://qiita.com/dongsu-iis/items/6c7974022083d3036dc8

https://qiita.com/gitcho/items/a6c0bb781bc395e43ec4
https://qiita.com/gitcho/items/147a3ce2536ae3035bb8

stamefusa
サーバサイドがメインです。PHPばかりでしたが最近はJavaも触ります。
https://stamefusa.hateblo.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした