Visual Studio CodeでJavaを開発環境を設定した記録

Java Silverを勉強するにあたり、実際の開発環境に近い状態でJavaを動かしてみたいと思い、VSCodeとiTermからJavaのコードを動かせるように環境設定しました。

ローカル環境を使わずにJavaを動かす際は、[dokojava](https://dokojava.jp/sources/Main.java)というサイトを使っていました。『スッキリわかるJava入門』という本でおすすめされていたサイトです。

#この記事を参考にする場合の注意
[Visual Studio CodeでJavaの(デバッグできる)開発環境をつくる](https://codeaid.jp/vscode-debug/)というサイトを参考に、Visual Stdio Codeに「Java Extension Pack」をインストールして開発環境を設定したのですが、使いこなせず、結局OpenJDKをインストールすることで、ローカルでJavaを動かすことができるようになりました。

ただ、Visual Stdio Codeに「Java Extension Pack」をインストールする過程はどのみち必要だったのではないか？と思うため、記事に残しています。

また、OpenJDKはUbuntuの仮想環境にインストールしていますが、Visual Stdio Codeの「Java Extension Pack」からインストールしたJavaはローカル環境に入ってしまっているようです。

現状、ローカル環境のJavaは「java version "14.0.2"」
ubuntu上のJavaは「openjdk version "1.8.0_265"」になっています。

これってまずいのかな・・・

#Visual Studio Code側の設定
[Visual Studio CodeでJavaの(デバッグできる)開発環境をつくる](https://codeaid.jp/vscode-debug/)というサイトを参考に設定しました。

・まず、Visual Studio Codeに「Java Extension Pack」をインストールする

![スクリーンショット 2020-10-03 21.39.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/d5cac2d2-909c-5fb6-1a5c-7d69d99c2d8a.png)

・左下の歯車マークから設定を開き、「setting.json」を開く
![スクリーンショット 2020-10-03 21.44.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/4859ec01-4146-8867-2dce-424a704adb8c.png)

・「setting.json」にJavaの設定を追記する
![スクリーンショット 2020-10-03 21.44.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/e6840770-7771-3022-8edc-9acec196efce.png)

> "java.home": "/Library/Java/JavaVirtualMachines/(インストールしたJDKフォルダ)/Contents/Home/"

と書き込む。

インストールしたJDKフォルダは、ターミナルに「java -version」コマンドを打ち込んで確認する
![スクリーンショット 2020-10-03 21.50.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/869e02f9-b76f-9358-0460-71d17ece6944.png)



#仮想環境(ubuntu)にJavaをインストール
ドットインストールの『Java 8入門』を参考に、OpenJDKというオープンソースのJavaをインストールしました

<OpenJDK公式サイト>https://openjdk.java.net/

![スクリーンショット 2020-10-03 22.05.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/1237059c-f54e-8355-c3e4-81ba5a758dac.png)

ドキュメントに従い、
> $ sudo apt-get install openjdk-8-jre

というコマンドでインストールを試みたところ、
「ローカルのバージョンが古い可能性がある」という旨のエラーが出て焦りましたが、

> $ sudo apt update

コマンドでバージョンアップし再インストールするとうまく行きました。

#コードを動かす
##別のパッケージを利用しない場合

> javac (ファイル名).java

でコンパイル

> java (ファイル名)

で実行する。

##別のパッケージを使用する場合

※パッケージの命名に注意！！

Visual Studio Codeでは、ルートディレクトリから該当のjavaファイルに到るまでのパスがpackage名としてサジェストされることがある。これに従ってパッケージ名をつけるとコンパイル時に「パッケージが見つかりません」というエラーになる。

**※javacを起動するディレクトリが、「パッケージの起点」となる！**

![スクリーンショット 2020-10-03 22.11.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595580/3991f3b6-1d8c-3a24-6407-1d05b66f6546.png)

上記のディレクトリ構成の場合、java_lessonsディレクトリでjavacを起動するならば

・「MyApp.java」のパッケージ名は
> com.dotinstall.myapp

・「AdminUser.java」「User.java」のパッケージ名は
> com.dotinstall.myapp.model

となる。

##ターミナルからの起動
パッケージ化したものを起動するコマンド

> javac com/dotinstall/myapp/MyApp.java

コンパイルするjavaファイルまでのパスは、パッケージ名と対応している。
コンパイルするのはエントリーポイント(mainメソッド)を持つファイル

> java com/dotinstall/myapp/MyApp

で実行

##コンパイルしたクラスファイルの出力先を指定する場合

・コンパイル時のコマンド
> javac -d (出力先) (パッケージ名)/(クラス名).java


・実行するクラスのクラスパスを指定する
> java -cd (クラスパス) (パッケージ名)



#参考
[Visual Studio CodeでJavaの(デバッグできる)開発環境をつくる](https://codeaid.jp/vscode-debug/)

[MacにJava(JDK)をインストール](https://qiita.com/ryo0301/items/3c9a02e03b4e9a41f576)