近期,在使用ImageJ(fiji)软件时,碰到插件java版本与软件java版本不兼容的问题。通过升级软件java版本得到了解决,记录过程。
问题描述
安装插件DeconvolutionLab2后,运行ImageJ软件后,出现下图错误,“(Fiji Is Just) ImageJ 2.0.0-rc-15/1.49k; Java 1.6.0_24 [64-bit]; Windows NT (unknown) 6.2; 936MB of 102400MB (<1%)
java.lang.UnsupportedClassVersionError: DeconvolutionLab2_Help : Unsupported major.minor version 52.0”
这句话的意思是:java.lang.UnsupportedClassVersionError
表明你正在尝试使用的插件 DeconvolutionLab2
需要一个比当前 Java 版本更高的版本来运行。错误中提到的 "Unsupported major.minor version 52.0" 指的是需要 Java 8 (也称为1.8) 来运行该插件,而你当前的环境是 Java 6 (1.6.0_24)。
因此,解决该问题,只需当前Java版本到Java8 (也称为1.8)就行。可通过ORACLE官网或者别的Java发布平台下载java8即可;
ImageJ(fiji) Bundled Java & system java
下图来自imageJ官网文档中的介绍,大概的意思,imagej启动时优先启动“bundled java first”,如果bundled java 找不到,imagej 软件才会返回使用“system java”启动(所谓的system java就是环境变量指定路径下的java.exe文件)。
什么是 bundled java呢?比如,你用windows64位操作系统安装了imagej软件,那么bundled java也会伴随着安装,其位置就在imagej安装路径Fiji.app\java\win64 下。
具体解决步骤
①ORACLE官网或者别的Java发布平台下载java8
②将imagej安装路径Fiji.app\java\win64 的bundled java删除(或整体文件夹移到别的磁盘位置),并将下载好的java8安装到Fiji.app\java\win64路径下
③然后再fiji工具栏plugins下面启动“DeconvolutionLab2”插件,如下图所示,插件正常启动;
④ 选做,此时fiji插件已经正常运行,如果想将通过命令行查看自己的java版本的话,可以将该bundled java 路径添加到系统变量里,也可以不加,并不会影响使用。
下面是如何将bundled java 路径添加到系统变量的步骤
-
设置环境变量:
- 在 Windows 搜索栏中搜索并打开 “系统环境变量” 或 “编辑系统环境变量”。
- 在系统属性窗口中点击 “环境变量”。
- 在“系统变量”区域,找到名为
Path
的变量,然后选择 “编辑”。 - 点击 “新建” 并输入 Java 的安装目录下的
bin
文件夹路径,例如G:\software\Fiji.app\java\win64\jdk1.8.0_401\bin
- 确保
javaw.exe
文件存在于你刚才添加的路径目录中。
-
保存并退出: 保存你的更改,并重启任何命令提示符窗口以确保更改生效。
-
再次检查: 在命令提示符输入
javaw -version
来确认环境变量设置正确。
插曲:为了进一步证实 ImageJ java版本为Java 6 (1.6.0_24),我参照以下链接查询自己电脑的Java版本号,命令行输入“java -version”后,控制台显示“java 不是内部或外部命令,也不是可运行的程序或批处理文件”。
查询当前电脑安装的Java/JDK版本的方法(查看Java/JRE版本号)_查看java情况和版本的指令-CSDN博客
之所以出现这个问题,这是因为 Java 的安装路径没有被添加到系统的环境变量 PATH 中
参考资料:
ImageJ | 图像去卷积(插件来源)
Frequently Asked Questions(ImageJDocs 官方文档)
Java Archive Downloads - Java SE 8u211 and later(官网下载java8)
MorphLibJ Java error - Usage & Issues - Image.sc Forum (image.sc论坛)