お久しぶりです。サカタです。急にウナブログが活発になりましたね!?!?
お久しぶりです。サカタです。
急にウナブログが活発になりましたね!?!??!!なんでかなぁ不思議だなぁ?????
そんなこと(?)は置いといて、IT企業らしく〇iitaのような技術系の記事でも書いてみようということで、タイトルにもある通り、Java版のMinecraftサーバについて何回かに分けて書いてみます。
適当こいてたらすみません。指摘してください。
記念すべき第1回はサーバの構築です。
目次
背景
そもそもなぜMinecraftでマルチプレイをするためにはサーバが必要なのでしょうか(ソロプレイの場合は不要です)。
結論から言うと、Minecraftはオンラインゲームとは設計思想が違うからです。
オンラインゲームの通信方式は運営側が管理しているサーバにプレイヤーがアクセスするクライアント・サーバ方式(FPS、バトロワ等)か、プレイヤー同士が直接通信するP2P方式(格闘ゲーム等)か、両方を採用したハイブリッドです。

MinecraftではP2P方式を採用していないためサーバを介す必要があるのですが、そもそもMinecraftはソロプレイをメインとしているため公式はサーバを提供していません。(サーバプログラムは提供してます)
そのため、サーバを自分で立てたり、レンタルする必要があるのです。
前提
- WindowsのPCであること
- PC版のMinecraftをプレイしたことがある人
- ある程度ITの基礎知識がある、もしくは知識をつける気があること
第3回ぐらいでLinux編出すのでLinuxの方は少々お待ちください。
Macの人はすみませんが、調べてくださいウナルスに入って僕に聞いてください。
前提の2つ目に関してですが、サーバの構築はあくまで、Java版のMinecraftで”マルチプレイをする方法”であり、Minecraftをプレイする方法ではありません。
通常のソロプレイはこんな面倒なことしなくても遊べるので、プレイしたことがない人は一度ソロプレイで遊んでみてくださいね。友達と遊びたいという人や、気軽にサーバやネットワークの知識をつけたいという人はサーバ構築をぜひやってみてください。
部長がお子さんとこの記事の手順をやってみたらしいのですが、ランチャーが何かわからなかったと指摘を受けました(;´д`)スミマセン
以下、つよつよエンジニアの方は読み飛ばしてください。前提の3つ目に関してです。
サーバの運営はセキュリティリスクを伴います。
Minecraft Wikiのサーバのセットアップページにも書かれていますが、PCの設定ファイルやコマンド、ネットワークについてある程度の知識はあるべきです。

ただ、「知識がないので諦める」とはなってほしくなくて、いろいろ手を出してみてわからないことがあったらその都度調べてチャレンジしてほしいです。
私も初めてこのMinecraftサーバの構築をしたときは最低限の知識しかなかったですが、トラブルシュートを繰り返すうちに知識が身につき、そこで付けた知識は今も業務で役立っています。
必要なもの
- サーバプログラム
- Java
よくよく考えたらこれだけですね。では順番に…
サーバプログラムのダウンロード
まず、こちらから「minecraft_server.バージョン.jar」をクリックしてサーバプログラムを入手してください。

※ここで入手できるのは最新バージョンのみです。過去バージョンのものはランチャーから入手できます。やり方は調べてみてくださいウナルスに入って僕に聞いてください。
ダウンロードしたファイルは任意のフォルダに配置してください。↓こんな感じ

Javaのインストール
次にこちらの記事を参考にしてJava(OpenJDK)をインストールします。
余談ですが、このLet’sプログラミングというサイト、いろんなプログラミング言語の入門があるので新しく言語を学びたいときなどおすすめです。
最新バージョンかLTSか迷いますが、今回はサーバプログラムを動かすだけなので深く考えず記事通り最新バージョンにします。
LTSって何ぞやって人は調べてみてくださいウナルスに入って僕に聞いてください。
まずこちらにアクセスし、「Ready for use:」の後ろのJDKをクリックしてください。

Windows/x64の横にある「zip」をクリックするとダウンロードが始まります。

ダウンロードできたら解凍し、中身を任意のフォルダに配置してください。↓こんな感じ

PATHとJAVA_HOMEの設定
最後にPATHとJAVA_HOMEを設定します。
JAVA_HOMEとは、アプリケーションなどが Java を利用する場合に JDK のインストールされているディレクトリを探す場合があり、その時に参照することがある環境変数です。
検索バーに「env」と入力し、「システム環境変数の編集」をクリックしてください。

「環境変数(N)…」をクリックしてください。

ユーザ環境変数とシステム環境変数がありますが、システム環境変数の方の「新規(W)…」をクリックしてください。
すでにシステム環境変数「JAVA_HOME」があるよって方は選択して「編集(I)…」をクリックしてください。
※ユーザ環境変数はそのユーザでのみ有効な環境変数、システム環境変数は全ユーザで有効な環境変数です。

変数名に「JAVA_HOME」、変数値に先ほど配置したjdkのフルパス(今回の場合なら「C:\Program Files\Java\jdk-23.0.2」)を入力し、「OK」をクリックしてください。

システム環境変数の中に「JAVA_HOME」が追加されたと思います。

「OK」「OK」の順番でクリックし、一度環境変数の設定画面を閉じてください。
検索バーに「cmd」と入力し、「コマンドプロンプト」を起動してください。
「set JAVA_HOME」と入力し、実行してください。

先ほど設定した内容が表示されればOKです。
PATHはプログラムのbinまでのフルパスを設定すればよい(今回の場合ならC:\Program Files\Java\jdk-23.0.2\bin)のですが、せっかくJAVA_HOMEを設定したので「%JAVA_HOME%\bin」を設定します
フルパスではなく、%JAVA_HOME%\binとする理由は、今後javaのバージョンが変わったり、そのパスに変更があった場合に、JAVA_HOMEを変更するだけで良くなるからです。
再度「env」→「システム環境変数の編集」→「環境変数」で環境変数の設定画面を開いてください。
システム環境変数から「Path」を選択した状態で「編集(I)…」をクリックしてください。

「新規(N)」をクリックし、「%JAVA_HOME%\bin」と入力して「OK」をクリックしてください。


先ほどと同じように「OK」「OK」で環境変数の設定画面を閉じ、「cmd」でコマンドプロンプト起動してください。
「java -version」と入力し、実行してください。

「openjdk version “ダウンロードしたバージョン”」と出ていればOKです。
もし「’java’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが出てしまう場合は、JAVA_HOMEもしくはPATHの設定を見直してみてください。
表示されるバージョンが想定通りでない(過去バージョン等)場合、PATHの優先度が低い可能性があります。PATHに新規で追加した場合、末尾に追加されることになりますが、PATHは先頭から順番に読み込まれます。そのため、過去に同様の手順でjavaをインストールしていた場合、その値が先に読み込まれてしまいます。この場合、環境変数PATHの編集画面で一番上に持っていくだけで解決します。

解決しない場合、一度再起動してみてください。それでも解決しない場合はウナルスに入って僕にk
このPATHの設定がいわゆる「PATHを通す」ってやつですが、ここ何やってるか分からないって人多いんじゃないでしょうか。
私はこの「PATHを通す」が永遠と理解できなかった記憶があります。
PATHを通すとは
これもつよつよの方は飛ばしてください。
当時理解できなかった私が理解できるように説明するので細かい話は省いたり間違ってたりするかもしれませんがご了承ください。
簡単に言うと、ショートカットのようなものです。
例えばChromeを実行するとき、Cを開いてProgram Filesを開いてGoogleを開いてChromeを開いてApplicationを開いてchrome.exeをダブルクリックするわけですが、そんなこと誰もしません(?)
めんどくさいのでデスクトップにChromeのショートカットを作ってそれをダブルクリックしますよね?
これと同じです。GUIかCLIかの違いです。
CLIで操作する場合も実行したいプログラムまでのフルパスを指定する必要があります。
Javaを実行したいのであれば「C:\Program Files\Java\jdk-23.0.2\bin\java.exe」です。
でも長くてめんどくさいので毎回こんなこと打ちたくないのです。なのでデスクトップにショートカットを配置するように、環境変数PATHにjava.exeまでのパスを登録しておくことで、javaと打つだけで実行できるようにしているのです。
試しにコマンドプロンプトで「”C:\Program Files\Java\jdk-23.0.2\bin\java.exe” -version」を実行してみてください。「java -version」と同じ結果が得られるはずです。当然です。同じことをしているので(倒置法)

理解できましたか?できなかった方はウナルスに入っt
サーバ起動
これで準備は整ったので、いよいよサーバを起動します。
やり方は超簡単!ダウンロードしてきたサーバプログラムを実行するだけ!
コマンドプロンプトを起動し、server.jarファイルを配置したフォルダに移動します。
「cd C:\work\minecraft\server\1.21.4」と入力し、実行してください。

インストールしたjavaでサーバプログラムを起動します。
「java -jar server.jar –nogui」と入力し、実行してください。
わちゃわちゃ色々出ますが、プロンプトが表示されるまで待機してください。


「You need to agree to the EULA…」と表示され、プロンプトが表示されていればOKです。この状態でserver.jarを配置したフォルダを見てみると、フォルダやファイルがいくつか作られていると思います。

この中にある「eula.txt」というファイルをテキストエディタで開き、「eula=false」を「eula=true」に変更して保存してください。


EULAはEnd-User License Agreementの略で、ソフトウェアの使用や複製、譲渡などの条件が書かれた契約書です。eula=trueで同意したことになります。
読み方は「ユーラ」らしいです。最初心の中でエウラって読んでました。

変更できたら再度起動するのですが、毎回コマンドを打つのは面倒なのでバッチを作りましょう
「右クリック」->「新規作成」->「テキストドキュメント」として、ファイル名は「start.bat」にします。拡張子を変えるとうんちゃら言われますが「はい」で大丈夫です。

作成できたらテキストエディタで開いて以下を追記し、保存して閉じてください。
@ECHO OFF
java -Xms1024M -Xmx1024M -jar server.jar --nogui
pause

-Xmsと-Xmxは割り当てるメモリサイズです。10人程度ならこの設定(1GB)で問題ないかと思います。カクつき等が気になったらチューニングしてください。
保存できたら、start.batをダブルクリックで実行してください。コマンドプロンプトが起動し、サーバが起動するはずです。

「Done」と表示されたらOKです。サーバが起動したぞ!
起動確認を行います。Minecraftランチャーからserver.jarと同じバージョンのマイクラ(Java版)を起動してください。
起動できたら、「マルチプレイ」を選択してください。

「ダイレクト接続」をクリックしてください。

サーバアドレスに「localhost」と入力し、「サーバに接続」を押してみてください。


ワールドに接続できたら成功です!スポーン地点やばすぎる
サーバを起動したコマンドプロンプトに「プレイヤー名 joined the game」が出てるはずです。

無事サーバの起動確認ができたのでサーバを停止します。コマンドプロンプトで「stop」を実行してください。

サーバが停止しました。コマンドプロンプトおよびMinecraftを終了して大丈夫です。
これにてサーバの構築は完了です!!!!!お疲れ様でした!!!長かった…
起動できなかった方はすみませんがウナルスに来てくださいね。
長くはありましたが、ここまではスムーズに行けた、もしくは詰まったけどすぐ解決できたって方が多いのではないでしょうか。
実はここからが本番です。おそらくですが、次のステップが最も詰まりやすいのです。そして、、、
ここで言わずに前提で言えよって感じですが、高専生で寮生の方は次回の手順は恐らくできません。ネットワークをいじいじするので寮や学校だとちょっと難しいと思います。同じLAN内なら今の状態でも遊べるので、同じLANにつないだ寮生どうしで遊んでくださいゴメンネ
ここまで読んでくださった方ありがとうございました!!!
ということで、次回「公開」編 お楽しみに!
よだん。
最初の背景でMinecraftはサーバを介す必要があるという話をしましたが、実はソロプレイでも裏でサーバが起動しており、そこにアクセスしているようです(知らなかった)。
記事内の画像はすべてmiroで編集したのですが、画質が悪いですね。
あとやっぱり長すぎかな…この回だけでも3回ぐらいに分けてもよかったんですがちょっと複雑な事情がございまして…それもウナルスに入っt次回以降はもうちょっと読みやすい記事書きます。

2 thoughts on “自前のMinecraftサーバを構築する#1”