「アプリケーション"RubyMine.app"を開けません。」と出た時の対処


RubyMineのアップデートをかけていたら開けなくなってしまいました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/131053/55d5e342-d175-e950-6154-6d5737f85b24.png)
その時の対処法です。
結論としては、RubyMineの日本語化ファイルを配置したら動きました。

## エラーメッセージの確認
軽くググった結果、`Contents/MacOS/rubymine`を実行するとエラーログが見れるとのこと。
なので、パッケージを開いて、実行してみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/131053/5075ce86-40cd-402a-1daf-a340c2b3eba4.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/131053/9e30c873-12ed-b338-e4a6-022775254187.png)

実行結果

```
/Applications/RubyMine.app/Contents/MacOS/rubymine ; exit;
mba:~ username$ /Applications/RubyMine.app/Contents/MacOS/rubymine ; exit;
2018-10-14 13:28:48.112 rubymine[2553:29203] allVms required 1.8*,1.8+
2018-10-14 13:28:48.116 rubymine[2553:29206] Value of RUBYMINE_VM_OPTIONS is (null)
2018-10-14 13:28:48.116 rubymine[2553:29206] Processing VMOptions file at /Users/username/Library/Preferences/RubyMine2018.2/rubymine.vmoptions
2018-10-14 13:28:48.117 rubymine[2553:29206] Done
Error opening zip file or JAR manifest missing : /Applications/RubyMine.app/Contents/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
Error occurred during initialization of VM
agent library failed to init: instrument
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[プロセスが完了しました]
```

## Javaのバージョンを合わせる

`allVms required 1.8*,1.8+`とありますが、MacとRubyMineのJavaのバージョンを合わせる必要があるようです。

```
mba:~ username$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
```
1.8なので問題なさそうです。

## VMオプションファイルの確認

`Value of RUBYMINE_VM_OPTIONS is (null)
Processing VMOptions file at /Users/username/Library/Preferences/RubyMine2018.2/rubymine.vmoptions`
VMオプションの値にnullがある。ファイルのパスはここ。
とのことなので確認します。

```rubymine.vmoptions
# custom RubyMine VM options

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Xverify:none

-XX:ErrorFile=$USER_HOME/java_error_in_rubymine_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_rubymine.hprof
-Xbootclasspath/a:../lib/boot.jar

-javaagent:/Applications/RubyMine.app/Contents/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
```
ふむふむ。行き詰まりました。

## エラーメッセージを読み進める
再度エラーメッセージを確認すると、
`Error opening zip file or JAR manifest missing : /Applications/RubyMine.app/Contents/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar`
とあります。RubyMineの日本語化ファイルが開けなかったらしい。
再度パッケージを確認してみると、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/131053/e93115bd-475c-d55f-8a84-0f1d564e11cb.png)

`jp.sourceforge.mergedoc.pleiades/pleiades.jar`がありません!

## RubyMineの日本語化ファイルの配置と起動
`jp.sourceforge.mergedoc.pleiades/pleiades.jar`を`/Applications/RubyMine.app/Contents/plugins`に配置して実行すると、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/131053/61630102-8359-1720-339b-8f09eacfa724.png)
起動することができました。動作も問題なさそうです。

## まとめ
単純な結論だけでなく、どのように解決したかを書いてみました。
多少遠回りしてしまったので、反省としてエラーメッセージはちゃんと読もうと思いました。
パッケージの中の`rubymine`についてですが、`RubyMine.app`に限らず`~.app`の実体は`Contents/MacOS`ディレクトリにいるみたいですね。アプリケーションの挙動がおかしくなった場合は、`~.app`の実体を実行して確認すると良さそうです。