ImageJ не может найти JVM, хотя OpenJDK 8 установлен
Я установил ImageJ (sudo apt install imagej
) на Ubuntu 16.04, но это не работает:
$ imagej
Open other images in this ImageJ panel as follows:
imagej -p 1 <image1> [<image2> ... <imageN>]
No JVM found to run ImageJ
Please apt-get install a JVM to run ImageJ or
set JAVA_HOME if it's not a JVM from a Debian Package.
Однако OpenJDK 8 установлен:
$ java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Что я должен сделать, чтобы запустить ImageJ?
1 ответ
Это ошибка. Это сообщается на панели запуска под названием imagej не запускается (xenial). Это само по себе дубликат этой ошибки, который говорит, что автоопределение JAVA_HOME завершается неудачно из-за пробелов в выходных данных update-java-alternatives
Это исправлено в Debian, а исправленная версия включена в Yakkety.
В отчете об ошибках сообщается о нескольких исправлениях. Одно исправление, которое работало для меня, - экспорт вручную JAVA_HOME
и начиная с терминала
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
imagej
Кто-то сообщил, что сборка Yakkety работает и на Xenial. Его можно скачать здесь https://launchpad.net/ubuntu/+source/imagej/1.50i+dfsg-1/+build/9642507
Я скачал эту сборку, и она работает без каких-либо обходных путей!
Другой обходной путь - прямое редактирование. /usr/bin/imagej
файл, как предложено ByteCommander (спасибо ему). Вокруг линии 32, меняя линию
JAVA_HOME=$(/usr/sbin/update-java-alternatives -l | grep openjdk | sort | tail -1 | cut -d' ' -f 3)
в
JAVA_HOME=$(/usr/sbin/update-java-alternatives -l | grep openjdk | sort | tail -1 | tr -s ' ' | cut -d' ' -f 3)
это в основном вставка tr -s ' ' |
до cut ...