ideaコマンドでIntelliJ IDEAが起動しない

最近、自宅のMacでideaコマンドでIntelliJ IDEAが起動出来なくなっていました。

こんな感じのエラーがでて、何もおこらない。

LSOpenURLsWithRole() failed with error -10810 for the file /Applications/IntelliJ IDEA.app.

IDEA.app 内のideaコマンドで調べてみる。

Macの場合だと、appファイルの内部にもう一つideaコマンドが内包されており、
こちらを叩いてみるとトレースログのようなものを出力してくれるので、
それで確認するのが良いみたいです。

/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea

叩いてみると。。

$ /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea
2018-05-30 22:30:00.053 idea[41922:6930459] allVms required 1.8*,1.8+
2018-05-30 22:30:00.055 idea[41922:6930465] Value of IDEA_VM_OPTIONS is (null)
2018-05-30 22:30:00.055 idea[41922:6930465] Processing VMOptions file at /Users/tyabuta/Library/Preferences/IntelliJIdea2018.1/idea.vmoptions
2018-05-30 22:30:00.056 idea[41922:6930465] Done
Picked up JAVA_TOOL_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
2018-05-30 22:30:00.060 idea[41922:6930465] JNI_CreateJavaVM (/Applications/IntelliJ IDEA.app/Contents/jdk) failed: 4294967295

Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED

認識できないJVMオプションがあってコケていたようだ。

そういえば、Java10の警告抑止のために、.bashrc と、.zshrcに書いてたわ〜。
今は一旦、削除する事で解決しました。

IntelliJ IDEAはapp内臓のjreで動いている。

前述のJVMオプションは、Java9,Java10用に書いていたオプションなんですが、
IntelliJ IDEA自体は、IntelliJ IDEA.app/Contents/jdk にあるJavaのランタイムを使用して起動しているようです。

$ cd /Applications/IntelliJ IDEA.app/Contents/jdk/Contents/Home/jre/bin
$ ./java -version
openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b20)
OpenJDK 64-Bit Server VM (build 25.152-b20, mixed mode)

内蔵のJREは、Java8なので、Unrecognized option となっていた。

ideaコマンドについて

ideaコマンドの実態は、pythonコードになっている。

$ which idea
/usr/local/bin/idea

/usr/local/bin/idea

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
import struct
import sys
import os
import time

# see com.intellij.idea.SocketLock for the server side of this interface

RUN_PATH = u'/Applications/IntelliJ IDEA.app'
CONFIG_PATH = u'/Users/tyabuta/Library/Preferences/IntelliJIdea2018.1'
SYSTEM_PATH = u'/Users/tyabuta/Library/Caches/IntelliJIdea2018.1'

.
.

def start_new_instance(args):
    if sys.platform == 'darwin':
        if len(args) > 0:
            args.insert(0, '--args')
        os.execvp('open', ['-a', RUN_PATH] + args)
    else:
        bin_file = os.path.split(RUN_PATH)[1]
        os.execv(RUN_PATH, [bin_file] + args)


ide_args = process_args(sys.argv)
if not try_activate_instance(ide_args):
    start_new_instance(ide_args)

Macの場合、openコマンドでapp起動されているようですね。

open -a /Applications/IntelliJ\ IDEA.app

おしまい

おそらく、最終的には、
/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea が実行されている気がします。
上記のコマンドで起動した場合、起動後もコンソールにログが出続けるため、
他になにかエラーがあるときにも確認するのに役立ちそうです。

コメントを残す