Eclipse предоставляет «Не удалось создать виртуальную машину Java» - PullRequest
3 голосов
/ 19 марта 2020

Платформа: MA C Каталина 10.15.3 (64 бита) Затмение: eclipse- java -2020-03-R-macosx-cocoa-x86_64.dmg (64 бита)

Это было в результате попытки исправить и решить, где JRE затмения было The container 'JRE System Library [...]' references non existing library '...' и последующее исправление. После внесения этих изменений я выключил затмение и, перезапустив его, столкнулся с этой ошибкой. Важно отметить, что echo $JAVA_HOME ничего не дает взамен. В следующих журналах описываются другие попытки запустить Eclipse.

После удаления и переустановки eclipse и java я по-прежнему получаю сообщение об ошибке "Не удалось создать виртуальную машину Java".

При запуске ./eclipse из командной строки я получаю :

Error: could not find libjava.dylib
Failed to GetJREPath()

При запуске ./eclipse -vm /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/lib из командной строки я получаю:

cmacedo@Christians-MBP eclipse % ./eclipse -vm /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/lib
Error: could not find libjava.dylib
Failed to GetJREPath()

При проверке папки /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/lib Я вижу, что она действительно содержит libjava.dylib

И, если я попытаюсь сделать следующее, я получу permissions denied:

cmacedo@Christians-MBP ~ % echo "export JAVA_HOME=`/Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/`" >> ~/.profile
zsh: permission denied: /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/

Ответы [ 2 ]

2 голосов
/ 09 апреля 2020

TL; DR

Если вы все еще можете воспроизвести проблему, выполните:

cd /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/MacOS
sudo ln -fs ../Home/lib/libjli.dylib

Подробнее

У вас была последняя версия Oracle JDK 14. Существует известная ошибка в последней версии Oracle JDK или Open JDK: JDK-8238225 . О проблеме также сообщалось в Eclipse: ошибка eclipse 559482 .

Эта проблема будет исправлена ​​в следующих выпусках JDK.

Между тем, обходной путь отличается в зависимости от JDK версия. Я провел несколько экспериментов, чтобы найти общее решение c. Этот должен всегда работать:

cd $($(dirname $(readlink $(which javac)))/java_home)/../MacOS
sudo cp libjli.dylib libjli.dylib.bak
sudo ln -fs $(find ../Home -name libjli.dylib)
0 голосов
/ 23 марта 2020

Хотя это не решение проблемы. В итоге я сделал сброс настроек. Я знаю, что это не поможет многим людям. Однако это сработало ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...