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 ...

Другие вопросы по тегам