ImageJ não pode encontrar a JVM embora o OpenJDK 8 esteja instalado

3

Instalei ImageJ ( sudo apt install imagej ) no Ubuntu 16.04, mas não funciona:

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

No entanto, o OpenJDK 8 está instalado:

$ 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)

O que devo fazer para executar o ImageJ?

    
por Byte Commander 22.09.2016 / 17:07

1 resposta

3

Isso é um bug. É reportado no launchpad aqui intitulado imagej não inicia (xenial) . Que é uma duplicata do bug , que diz a detecção automática de JAVA_HOME falha devido a espaço em branco na saída update-java-alternatives

Ele foi corrigido no Debian e a versão corrigida está incluída no Yakkety.

Existem várias correções relatadas no relatório de erros. Uma correção que funcionou para mim foi exportar manualmente JAVA_HOME e a partir do terminal

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
imagej

Alguém relatou que uma versão do Yakkety também funciona para o Xenial. Ele pode ser baixado aqui link

Eu baixei essa compilação e ela funciona sem nenhuma solução alternativa!

Outra solução é editar diretamente o arquivo /usr/bin/imagej , como sugerido por ByteCommander (graças a ele). Ao redor da linha 32, mudando a linha

JAVA_HOME=$(/usr/sbin/update-java-alternatives -l | grep openjdk | sort | tail -1 | cut -d' ' -f 3)

para

JAVA_HOME=$(/usr/sbin/update-java-alternatives -l | grep openjdk | sort | tail -1 | tr -s ' ' | cut -d' ' -f 3)

basicamente é inserir tr -s ' ' | antes de cut ...

    
por Anwar 22.09.2016 / 17:25