「人間の行動を測定するとき,ネットワークを使いたい」
「ネットワークの形状によって,(従属変数)は異なるだろうか?」
といった関心に答えられるソフトウェアの一つが,breadboard です.
ネットワーク互恵性を研究していきたい私にとって,非常に重要なツールとなりそうな予感がするこのツール.
しかし,いざインストールしようとすると,どうにもうまくいかない...
ということで,同じように困った人,これから困る人向けに少しでも力になれるよう,この記事では私なりに躓いた点とその解決方法をご紹介します.
なお,私の使っているマシンが Windows 11 なので,以下では Windows を想定して説明します.
breadboard をインストールする
インストールの流れ
breadboard 公式にも書いてありますが,インストールの手順は以下です.
- JDK 8 をインストールする
-
breadboard_v[X.X.X].zip
をインストールする -
breadboard_v[X.X.X].zip
を解凍する - command prompt等で breadboard.bat を実行する
- お使いのブラウザ (e.g., Chrome) のリンク欄に
http://localhost:9000
と入力して開発開始
では,一歩ずつ見ていきましょう.
JDK 8 をインストールする
コチラ にアクセスして,JDK をインストールしてください.
自分のマシンにあった JDK をインストールしましょう.
私は Windows の x64 なので,下線部のjdk をインストールしました.
(以下,画像の右側にキラキラしたアイコンや,かわいいアイコンが表示されますが,拡張機能によるものです.皆さんのPCに表示されなくても問題ないので,気にしないでください.)
ここをクリックして jdk をダウンロードしようとすると,Oracle のログイン画面が出てくると思います.
原則,アカウントがないとインストールできない(?)ので,住所や電話番号を入力してアカウントを登録し,その上でダウンロードしましょう.
ダウンロードしたら,ダウンロードした先のフォルダに移動して,jdk-8u381-windows-x64.exe
をダブルクリックしてください.
ダブルクリックしたら,「次へ」か「完了」をひたすら押してください.
インストールが完了したら,次に進みましょう.
breadboard_v[X.X.X].zip
をインストールする
breadboard 公式にアクセスし,上の方にある「INSTALL」ボタンを押してください.
(サイトがアップデートされたことによって,見た目が変わっている可能性があります.)
すると,以下のような画面になるはずなので,「DOWNLOAD PACKAGE」をクリックしてください.
ライセンスが表示されるので,同意する場合は「Email address」に自分のアドレスを入力して,「AGREE」を押してください.
すると,ダウンロード先にbreadboard_v[X.X.X].zip
(私の場合はbreadboard-v2.3.1.zip
) がダウンロードされているはずです.
breadboard_v[X.X.X].zip
を解凍する
ダウンロードされていることが確認できたら,breadboard_v[X.X.X].zip
を選択したうえで右クリック→「すべて展開...」→「展開」を選択してください.
zipファイルを展開したあとのフォルダを見てみると,以下のようなファイルがずらっと並びます.
command prompt等で breadboard.bat を実行する
breadboard.bat
があるフォルダまで移動する
上記のファイル群のうち,breadboard.bat
を右クリック→「プロパティ」をクリックして,パスをコピーしましょう.
次に,「Windowsキー」を押して,「cmd」と入力,「Enter」を押すことで,コマンドプロンプトを押してください.
その後,立ち上がったら cd breadboardのパス
を入力して,Enterを押してください.
breadboard.bat
を実行する
次に,breadboard-v.X.X.X
フォルダを開いて,breadboard.bat
をコマンドプロンプトにドラッグして Enterを押してください.
すると breadboard のセットアップが完了する...はずなんですが,command prompt が立ち上がってもすぐ落ちる...
私はここで躓きました.
解決手順(ChatGPTにどんな質問をして解決したか!)はこの記事の補足で説明していますが,結論からいうと,breadboard.bat
の中身を以下のように変更することで解決します.
中身の変更の仕方がわからない方は,テキストエディタでバッチファイルを開く方法 | TECH PROjinをご参照ください.
@ECHO OFF &SETLOCAL
rem Parse the output of java --fullversion into an integer
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m"
rem Set java options for jdk9 and later
if %jver% GEQ 19000 (set "_JAVA_OPTIONS=")
rem run the breadboard server
java -cp "./lib/*;" -Dhttps.port=9443 -Dapplication.secret="pleasechangethis" -Dconfig.file=conf\application-prod.conf -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC play.core.server.NettyServer
その上で上記と同様の手続き(breadboard.bat
があるフォルダまで cd
で移動し,breadboard.bat
を実行)をすると,以下のような画面になります.
このような画面になったら,次のステップに進みましょう.
ブラウザのリンク欄に http://localhost:9000
と入力
リンク欄に入力したら,Enterを押すと,以下のような画面になります.
この画面で必要事項を記入したら,「Create」ボタンを押しましょう.
この画面に遷移したら,セットアップは完了です!
お疲れ様でした.
補足:breadboard.bat の解決手順
cmd で独立で立ち上げてからbat file を実行することでエラーの内容を見てみました.
色々と試行錯誤やら検索やらしたんですが,さっぱりわからん...
ということで,ChatGPTに聞いてみました.
僕
以下の bat file を実行しました.
@ECHO OFF &SETLOCAL rem Parse the output of java --fullversion into an integer for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m" rem Set java options for jdk9 if %jver% GTR 19000 (set _JAVA_OPTIONS="--add-modules=javafx.controls") rem run the breadboard server java -cp "./lib/*;" -Dhttps.port=9443 -Dapplication.secret="pleasechangethis" -Dconfig.file=conf\application-prod.conf -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC play.core.server.NettyServer
すると,以下のエラーメッセージが cmd 上で表示されました.
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 Unrecognized option: --add-modules=java.xml.bind Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
どうすればいいですか.
ChatGPT
このエラーメッセージは、Java仮想マシン(JVM)のオプションが正しく設定されていないことを示しています。具体的には、--add-modules=java.xml.bindオプションが認識されていないと言っています。また、MaxPermSize=256mオプションもJava 8以降ではサポートされなくなっているため、無視されています。
問題を解決するために、次の手順を試してみてください。
--add-modules=java.xml.bindオプションを削除するか、より新しいJavaバージョンでサポートされるオプションに変更します。具体的なオプションはJavaのバージョンに依存します。バージョン9以降では、--add-modulesオプションが使われないことがあります。必要な場合は、Javaのバージョンに合わせて適切なオプションを設定してください。
MaxPermSize=256mオプションも削除することをお勧めします。このオプションはJava 8までで使われており、Java 9以降では無視されます。そのため、不要な警告を回避するために削除することができます。
修正したバッチファイルのコードは次のようになります。
@ECHO OFF &SETLOCAL rem Parse the output of java --fullversion into an integer for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m" rem Set java options for jdk9 and later if %jver% GEQ 19000 (set "_JAVA_OPTIONS=") rem run the breadboard server java -cp "./lib/*;" -Dhttps.port=9443 -Dapplication.secret="pleasechangethis" -Dconfig.file=conf\application-prod.conf -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC play.core.server.NettyServer
この修正により、バッチファイルはJava 9以降でも正常に実行できるはずです。必要に応じて、Javaのバージョンに合わせてオプションを調整してください。また、バッチファイル内の他の設定も確認してください。
ほんとかよ...と思ったら,本当に動きました.
ChatGPTさん,凄いですね.