尽管安装了 OpenJDK 8,但 ImageJ 找不到 JVM

尽管安装了 OpenJDK 8,但 ImageJ 找不到 JVM

我在 Ubuntu 16.04 上安装了 ImageJ ( sudo apt install imagej),但是它不起作用:

$ 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). 它本身是这个错误,其中表示由于 update-java-alternatives 输出中的空格,JAVA_HOME 自动检测失败

它固定在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 ...

相关内容