Scoopを使いOpenJDK14でMinecraftを起動する

#何でこんなことしたのか
プログラムマーにわかの私がMinecraftをプレイしている最中に都度動作が重くなることがあり気になって調べた所Minecraftで使用されているJavaがJava8という古いバージョンで動作に起因していると考え実行してみたのでその忘備録的な物なのである（そもそもベンチマークすら取っていないのでこの記事はMinecraftの動作改善を保証する物ではありません）。

###実行環境
Windows 10 Home Version 1909
MinecraftLauncher 2.1.13827
Minceraft 1.15.2
Minecraft 1.15.2 Optifine_HD_U_G1_Pre10

##そもそもJavaってなんぞや
###Javaってなんぞや
>Java（ジャヴァ）は、クラスベースのオブジェクト指向の、実装の依存関係をできるだけ少なくするように設計された汎用プログラミング言語である。

[Java - Wikipedia](https://ja.wikipedia.org/wiki/Java)

という事でざっくり言うとMinecraftではこのJavaというソフトで動作していると、そしてそのMinecraftLauncherに搭載されているJava自体はバージョン8です。
2020/05/13現在、リリースされているJavaの最新安定版はJava SE 14という事で今回はOpenJDK14を導入してMinecraftを起動してみようと言うことです。

###OpenJDKってなんぞや
>OpenJDK (Open Java Development Kit) は、プログラミング言語Javaのフリーかつオープンソースの実装である。

[OpenJDK - Wikipedia](https://ja.wikipedia.org/wiki/OpenJDK)

Oracleが用意しているJavaSE自体はバージョン8以降は有償になってしまったのでMinecraftに搭載されているJavaは8で止まっている訳ですね。

##早速OpenJDKを導入してみる
今回はOpenJDKのインストールですがブラウザで逐一サイトを調べて～クリックして～ダウンロード～という動作はしたくないのでターミナルでとある物を使い行うことにします。

###Scoopを導入する
Scoopってなんぞやって思う人も結構居ると思います。
プログラマーの方はご存知だと思うかもしれないですがMac OSに存在するHomebrewのWindows版のような物です。
コマンドラインのみでインストールが完了するのでとても便利です（流石にHomebrewよりパッケージは充実していないですが・・・）。

まずScoop本体を導入するためにPowershellを管理者権限で実行して次のコマンドを入力して実行します。（コマンドプロンプトじゃなくてPowershellなので注意）

```powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
iwr -useb get.scoop.sh | iex
```
[Scoopを使ったWindows環境構築のススメ - Super!!](https://qiita.com/Dooteeen/items/12dc8fb14042888113d0)

WindowsのスタートメニューにGitや7Zipという物が追加されますがScoopの動作に必要な物なので削除しないように気を付けてください。
これで問題無くScoop本体が導入出来たはずです。

###OpenJDKの導入
今回はMinecraft用にOpenJDK14を導入します（任意のバージョンも指定出来ますが今回は最新安定版の14を使用します）。

Scoopは基本

```powershell:パッケージの検索
scoop search "任意のパッケージ"
```
と検索してパッケージの導入をするので今回はOpenJDKと入力して検索するのですがデフォルトのままだと検索してもヒットしません。
なので今回はJababucketという検索出来る内容を追加出来るようにします。

```powershell:Javabucketの追加
scoop bucket add java
```

これでJava関連のパッケージを検索することが可能になります。
試しに

```powershell:OpenJDKの検索
scoop search OpenJDK
```

と入力を行いEnterを押すと、しばらくした後に

```powershell:OpenJDKの検索
scoop search openjdk
'java' bucket:
    adoptopenjdk-hotspot-jre (14.0.1-7.1)
    adoptopenjdk-hotspot (14.0.1-7.1)
    adoptopenjdk-lts-hotspot-jre (11.0.7-10.2)
    adoptopenjdk-lts-hotspot (11.0.7-10.2)
    adoptopenjdk-lts-openj9-jre (11.0.7-10.1-0.20.0)
    adoptopenjdk-lts-openj9-xl-jre (11.0.7-10.1-0.20.0)
    adoptopenjdk-lts-openj9-xl (11.0.7-10.1-0.20.0)
    adoptopenjdk-lts-openj9 (11.0.7-10.1-0.20.0)
    adoptopenjdk-lts-upstream-jre (11.0.7-10)
    adoptopenjdk-lts-upstream (11.0.7-10)
    adoptopenjdk-openj9-jre (14.0.1-7.1-0.20.0)
    adoptopenjdk-openj9-xl-jre (14.0.1-7.1-0.20.0)
    adoptopenjdk-openj9-xl (14.0.1-7.1-0.20.0)
    adoptopenjdk-openj9 (14.0.1-7.1-0.20.0)
    openjdk-ea (15-22-ea)
    openjdk (14.0.1-7)
    openjdk10 (10.0.2-13)
    openjdk11 (11.0.2-9)
    openjdk12 (12.0.2-10)
    openjdk13 (13.0.2-8)
    openjdk14 (14.0.1-7)
    openjdk15 (15-22-ea)
    openjdk7-unofficial (7u80-b32)
    openjdk9 (9.0.4-12)
```

の用に検索結果が一覧表示される筈です。
お目当てのopenjdk14も存在するので今回はこちらを使います（他のバージョンでも問題はないかと思われますが動作の保証はしかねます）。

インストールの際は

```powershell:openjdk14の導入
scoop install openjdk14
```

と入力してEnterを押すとしばらくインストールの動作を行った後に無事にインストールされます。
ゲームのようなソフトではないのでスタートメニューで検索をしてもアプリとしてはヒットしません。最近追加されたものにも表示されていないですがインストールはされています。
インストールされているか確認したい場合は

```powershell:導入済パッケージの確認
scoop list
```

で一覧表示されるのでopenjdk14が表示されていれば導入に成功しています。

#MinecraftでOpenJDK14を使い実行する
説明が書くのが下手でこのようにくっそ長い内容になりましたがついに起動です（こう言うこと書いてるから記事が肥大化するんですけどね）。
![2020-05-13 235634.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176908/dd70a42d-3b48-db20-fe81-aee1fc0091b0.png)

皆さんおなじみのMinecraftLauncherの画面です（新しい見た目使い易くて良いですよね）。
今回はこの起動構成画面に移動して作業します。
起動構成には既に最新版が一つをプレイヤーの方なら様々なバージョンのMinecraftの構成をご用意していると思いますが基本的にはどの構成を変更していただいてもかまいません（個人的には動作確認も含め最新バージョンの構成を一つ作成するのが良いと思います）。

起動構成の三点リーダー（…←こんなん）から編集を押してさらに下の方にある"その他オプション"を選択します。
そうすると下の図のようにJavaのパス指定とJVMの引数という設定があります。
今回はJavaのバージョン変更なのでパス指定を行います（JVMの引数は調べて適切な値を設定してあげると幸せになれるかもしれない）。
![2020-05-14 000241.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176908/7c7b0408-f768-2a78-1d15-46e15d36ffee.png)
デフォルトでは<ランチャー付属のJavaランタイムを使用>と書いてあるのでJava8が使用されています。
ここに先ほど導入したOpenJDKのパスを指定します（正確にはjavaw.exe）。

この世に居ないとは言い切れないですがもしもユーザー名がkiritanという人が居る場合はパスは

```
C:\Users\Kitiran\scoop\apps\openjdk14\14-36\bin\javaw.exe
```
となると思います。
当然他の人も居るので他の人は適宜Kiritanの部分を自分のユーザー名に変更してください。
不安な方は参照を押してCドライブから順々にopenjdkの項目まで移動する方が確実です。
編集が終わったらそのまま保存を押して起動してみましょう。
起動画面でF3を押すと詳細情報を表示出来ます。
![2020-05-14_00.09.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176908/91afe168-1068-ac39-582d-0a60fb9a9346.png)
右上を見ると問題無くJava: 14 64Bitで動作している事がわかります。これで問題無くJava14でMinecraftをプレイすることが出来ました。

#おきもち
今までQiitaを閲覧した事は多々あるものの記事を書いたことがなくちょっとしたお気持ちで書いてみようと思いました。コロナで引きこもりパーリナイなのも影響してる気がしますが。
記事を書くのが初めてでマークダウンも扱った事が無いので内容もめちゃくちゃかも知れないですが初心者と思ってそんな眼差しで見ていただけると光栄です。
そもそもこれプログラムに関係あるのかな・・・？って感じもしますがScoopでPythonとかも導入出来た気がするからまあ大丈夫でしょう・・・
消されるようなら他のサイトに転載しようと思います。