Issue with Clicy block on Linux


for while already I am using Icy on Windows and Linux and all went well. Now I have a new protocol which involves, among others, the Clicy block CLIj2_connected components labeling box. On Windows the protocol runs fine but on my Linux box (CentOS 7, Nvidia Quadro P2000 graphics) I receive the error message attached below.

To check what’s going wrong I copied the Icy installation folder from Linux to Windows and rerun the protocol there - without error. Changing the Java version from 8 to 11 on Linux did not help either.

So, I suspect there is something in the environment on the Linux box which leads to the error or some Linux specific installation detail. But for now I do not know where to start searching.

I attach a little protocol and an image to (may be) reproduce the error.

Thanks already for any advice on this.

The error Message:
An error occured while plugin ‘clicy’ was running :
java.lang.NoSuchMethodError: net.imglib2.img.array.ArrayImgFactory.(Lnet/imglib2/type/NativeType;)V
at net.imglib2.img.display.imagej.ImageJVirtualStack.getSlice(
at net.imglib2.img.display.imagej.ImageJVirtualStack.getPixelsZeroBasedIndex(
at net.imglib2.img.display.imagej.AbstractVirtualStack.getPixels(
at net.imglib2.img.display.imagej.AbstractVirtualStack.getProcessor(
at ij.ImagePlus.setStack(
at ij.ImagePlus.(
at net.imglib2.img.display.imagej.ImageJFunctions.makeImagePlus(
at net.imglib2.img.display.imagej.ImageJFunctions.wrapUnsignedShort(
at net.imglib2.img.display.imagej.ImageJFunctions.wrap(
at net.imglib2.img.display.imagej.ImageJFunctions.wrap(
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convertLegacy(
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convert(
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convert(
at net.haesleinhuepf.clij.CLIJ.convert(
at net.haesleinhuepf.clij2.CLIJ2.pull(
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabeling.connectedComponentsLabeling_internal(
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabelingBox.connectedComponentsLabelingBox(
at net.haesleinhuepf.clij2.CLIJ2Ops.connectedComponentsLabelingBox(
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabelingBox.executeCL(
cells3d_ch0_substack.tif (436.9 KB) DebugIt.protocol (5.9 KB)

1 Like

Hi @Gucki ,

it appears the installation of clicy is incomplete. It cannot find imglib2. Can you try to download it from here, remove the numbers from the end of the file and put it in your Icy installation folder to other .jar files? Maybe @MarionLouveaux or @Stephane can give us a hint, where to put dependencies inside Icy…

Let us know if this helps!


Hi @haesleinhuepf ,

thanks a lot for the immediate reply! So far I have not found the proper place for the extra jar in the icy folder. I tried the root folder, lib and also ij/plugins/jar. Then I got a bit adventurous and copied the net folder tree of the downloaded imglib2 jar into ( a copy of ) the icy.jar. That solved the issue for now. The test protocol and my original one run fine now.

So, it’s really the placement/reference of those classes. What puzzles me is why on one platform (Win) the classes are found and on another (Lin) they are not.


1 Like

Hi @Gucki, @haesleinhuepf,

Normally you can just put the jar in the plugins folder of Icy to get it work :slight_smile:
Still it’s indeed surprising that it works for Windows but not on Linux system.


  • Stephane

Indeed that’s the place - and the only one I did not try … :smiley: