MacにJMeterを入れる

## 最短距離を行く（結果論）

### JMeterをコマンドラインでインストール

```bash:実行コマンド
brew install jmeter
```

```:実行結果
==> Downloading https://homebrew.bintray.com/bottles/jmeter-2.13.yosemite.bottle
######################################################################## 100.0%
==> Pouring jmeter-2.13.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/jmeter/2.13: 1,859 files, 78M
```

### JDK8をインストール
dmgのダウンロードは以下から。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
"Accept License Agreement"にチェックを入れて
 `jdk-8u161-macosx-x64.dmg` をダウンロードします。
開いたら迷わず次へ次へでインストールは完了するはず。

### JMeterを起動
```bash:実行コマンド
jmeter
```
MacにJMeterを入れる手順はたったこれだけ。
あら簡単。
・・・・となるハズでした。
上記手順なら上手くいくはずですが、
私の場合、途中で **Java 9** を入れてしまったり
紆余曲折あったので注意点として以降でまとめます。

## MacでJMeterを使うまでの長い道のり（失敗手順）

### JMeterをコマンドラインでインストール

```bash:実行コマンド
brew install jmeter
```

```:実行結果
==> Downloading https://homebrew.bintray.com/bottles/jmeter-2.13.yosemite.bottle
######################################################################## 100.0%
==> Pouring jmeter-2.13.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/jmeter/2.13: 1,859 files, 78M
```
ここまでは幸せでした。

### JMeterを起動
```bash:実行コマンド
jmeter
```
するとJREを入れろと怒られます。
![スクリーンショット 2018-03-09 11.40.57.png](https://qiita-image-store.s3.amazonaws.com/0/127776/ba985e11-fa9f-76be-8353-b4435963ee9f.png)

### JRE9（最新版）をインストール
ダイアログの `詳しい情報...` からたどっていって以下のダウンロードページにたどり着きました。
http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html
`jre-9.0.4_osx-x64_bin.dmg` こいつを落としてJRE9をインストールします。

### JMeterを起動（２回目）
```bash:実行コマンド
jmeter
```
その結果・・・
![スクリーンショット 2018-03-09 11.40.57.png](https://qiita-image-store.s3.amazonaws.com/0/127776/ba985e11-fa9f-76be-8353-b4435963ee9f.png)
・・・・・・え？

### 考えた末、JDK9（最新版）をインストール
`java` コマンドが使えないのが問題なのか？とJDKを入れることにしました。
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
`jdk-9.0.4_osx-x64_bin.dmg`

### JMeterを起動（3回目）
```bash:実行コマンド
jmeter
```
その結果・・・

```:実行結果
Error: Java version is too low to run JMeter. Needs at least Java >= 1.6.0.
```
・・・・・・え？
なんなんすか？ Java 9 入れましたよね？
深呼吸してからググると以下が見つかります。
https://stackoverflow.com/questions/47180767/apache-jmeter-error-java-version-is-too-low-to-run-jmeter
Java 8を入れ直すのは面倒そうなのでjar指定で起動する方法を試します。

### JMeterを起動（4回目）
```bash:実行コマンド
java -jar /usr/local/Cellar/jmeter/2.13/libexec/bin/ApacheJMeter.jar
```
これでようやく画面を開くことができました。
めでたし、めでたし。


・・・・とは行かなかったのです。
「テスト計画」を右クリックしても何も表示されない。。。なんで？
コンソールを確認すると・・・・

```:実行結果
Uncaught Exception java.lang.ExceptionInInitializerError. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
```
MenuFactoryがない。。。こりゃライブラリがダメダメだな。
JDK 8を入れ直すのが決定です。

### JDK8をインストール
dmgのダウンロードは以下から。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
"Accept License Agreement"にチェックを入れて
 `jdk-8u161-macosx-x64.dmg` をダウンロードします。
開いたら迷わず次へ次へでインストールは完了するはず。
はい、デジャヴュな気がします。

### JMeterを起動（5回目）
```bash:実行コマンド
jmeter
```

```:実行結果
Error: Java version is too low to run JMeter. Needs at least Java >= 1.6.0.
```

こりゃJava 9のまんまですねorz

```bash:実行コマンド
java -version
```

```:実行結果
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
```

### JDK9をアンインストール
https://yoshikawataiki.net/blog/java/post-287/
このサイトを参考に以下を実行しました。
まずはJDK本体をディレクトリごと削除します。

```bash:実行コマンド
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-9.jdk
```

次に、JVMが8しかないことを確認します。

```bash:実行コマンド
cd /Library/Java/JavaVirtualMachines/
ls
```

```:実行結果
jdk1.8.0_161.jdk
```

`java` コマンドでバージョン確認します。

```bash:実行コマンド
java -version
```

JDKが8になりました。

```:実行結果
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
```

### JMeterを起動（6回目）
```bash:実行コマンド
jmeter
```
これでようやく正常起動ができました。
「テスト計画」を右クリックでメニューもちゃんと出ます。

お疲れ様でしたorz

## 使い方

後ほど記事を書こうかと思います。
が、以下のリンクが役に立ちそうです。
https://qiita.com/digdagdag/items/8a4023ddc7d549fa8de8

## まとめ
- JMeter + Java 9 は動きません。
- JMeterに必要なのはJREではなくJDKです。
- Java 9 を Java 8に戻すのは面倒です。