imagej / pyimagej

Use ImageJ from Python
https://pyimagej.readthedocs.io/
Other
474 stars 83 forks source link

Wrapping a local Fiji.app installation leads to bad classpath #280

Closed ctrueden closed 1 year ago

ctrueden commented 1 year ago

When using imagej.init("/path/to/Applications/Fiji.app"), the classpath is configured to include all JARs in the Fiji.app including jars, jars/bio-formats, and plugins. But PyImageJ also wants to mix in scifio-labeling from a remote Maven repository, and leans on jgo to do it, which creates a jgo environment containing some of the same JAR libraries that are already available in Fiji, at different versions than what currently ships with Fiji:

complete list of classpath elements ``` 3D_Blob_Segmentation-3.0.2.jar Fiji.app/plugins 3D_Objects_Counter-2.0.1.jar Fiji.app/plugins 3D_Viewer-4.0.5.jar Fiji.app/plugins AnalyzeSkeleton_-3.4.2.jar Fiji.app/plugins Anisotropic_Diffusion_2D-2.0.1.jar Fiji.app/plugins Archipelago_Plugins-0.5.4.jar Fiji.app/plugins Arrow_-2.0.2.jar Fiji.app/plugins Auto_Local_Threshold-1.11.0.jar Fiji.app/plugins Auto_Threshold-1.18.0.jar Fiji.app/plugins BalloonSegmentation_-3.0.1.jar Fiji.app/plugins Bug_Submitter-2.1.1.jar Fiji.app/plugins CPU_Meter-2.0.2.jar Fiji.app/plugins Calculator_Plus-2.0.1.jar Fiji.app/plugins Cell_Counter-3.0.0.jar Fiji.app/plugins Colocalisation_Analysis-3.0.6.jar Fiji.app/plugins Color_Histogram-2.0.7.jar Fiji.app/plugins Color_Inspector_3D-2.5.0.jar Fiji.app/plugins Colour_Deconvolution-3.0.3.jar Fiji.app/plugins CorrectBleach_-2.1.0.jar Fiji.app/plugins Correct_3D_Drift-1.0.6.jar Fiji.app/plugins Descriptor_based_registration-2.1.8.jar Fiji.app/plugins Dichromacy_-2.1.2.jar Fiji.app/plugins Directionality_-2.3.0.jar Fiji.app/plugins FS_Align_TrakEM2-2.0.4.jar Fiji.app/plugins Feature_Detection-2.0.3.jar Fiji.app/plugins Fiji_Archipelago-2.0.1.jar Fiji.app/plugins Fiji_Developer-2.0.8.jar Fiji.app/plugins Fiji_Package_Maker-2.1.1.jar Fiji.app/plugins Fiji_Plugins-3.1.3.jar Fiji.app/plugins FilamentDetector-2.0.1.jar Fiji.app/jars FlowJ_-2.0.1.jar Fiji.app/plugins Graph_Cut-1.0.2.jar Fiji.app/plugins Gray_Morphology-2.3.5.jar Fiji.app/plugins H5J_Loader_Plugin-1.1.5.jar Fiji.app/plugins HDF5_Vibez-1.1.1.jar Fiji.app/plugins Helmholtz_Analysis-2.0.2.jar Fiji.app/plugins IJ_Robot-2.0.1.jar Fiji.app/plugins IO_-4.2.1.jar Fiji.app/plugins Image_5D-2.0.2.jar Fiji.app/plugins Image_Expression_Parser-3.0.1.jar Fiji.app/plugins Interactive_3D_Surface_Plot-3.0.1.jar Fiji.app/plugins IsoData_Classifier-2.0.1.jar Fiji.app/plugins JWlz-1.4.0.jar Fiji.app/jars Kappa-2.0.0.jar Fiji.app/jars Kuwahara_Filter-2.0.1.jar Fiji.app/plugins KymographBuilder-3.0.0.jar Fiji.app/plugins LSM_Reader-4.1.2.jar Fiji.app/plugins LSM_Toolbox-4.1.2.jar Fiji.app/plugins Lasso_and_Blow_Tool-2.0.2.jar Fiji.app/plugins Linear_Kuwahara-2.0.1.jar Fiji.app/plugins LocalThickness_-4.0.3.jar Fiji.app/plugins MTrack2_-2.0.1.jar Fiji.app/plugins M_I_P-2.0.1.jar Fiji.app/plugins Manual_Tracking-2.1.1.jar Fiji.app/plugins Multi_Kymograph-3.0.1.jar Fiji.app/plugins OMEVisual-2.0.0.jar Fiji.app/jars PIV_analyser-2.0.0.jar Fiji.app/plugins QuickPALM_-1.1.2.jar Fiji.app/plugins RATS_-2.0.2.jar Fiji.app/plugins Reconstruct_Reader-2.0.5.jar Fiji.app/plugins SPIM_Opener-2.0.2.jar Fiji.app/plugins SPIM_Registration-5.0.25.jar Fiji.app/plugins ST4-4.3.4.jar Fiji.app/jars Samples_-2.0.3.jar Fiji.app/plugins Series_Labeler-2.0.1.jar Fiji.app/plugins Sholl_Analysis-0.0.0-STUB.jar Fiji.app/plugins Simple_Neurite_Tracer-0.0.0-STUB.jar Fiji.app/plugins Siox_Segmentation-1.0.5.jar Fiji.app/plugins Skeletonize3D_-2.1.1.jar Fiji.app/plugins SplineDeformationGenerator_-2.0.2.jar Fiji.app/plugins Stack_Manipulation-2.1.2.jar Fiji.app/plugins Statistical_Region_Merging-2.0.1.jar Fiji.app/plugins Stitching_-3.1.9.jar Fiji.app/plugins Sync_Win-1.7-fiji4.jar Fiji.app/plugins T2-NIT-1.1.4.jar Fiji.app/jars T2-TreelineGraph-1.1.4.jar Fiji.app/jars Thread_Killer-2.0.1.jar Fiji.app/plugins Time_Lapse-2.1.1.jar Fiji.app/plugins Time_Stamper-2.1.0.jar Fiji.app/plugins ToAST_-25.0.2.jar Fiji.app/plugins TopoJ_-2.0.1.jar Fiji.app/plugins TrackMate-7.11.1.jar Fiji.app/jars TrackMate_-0.0.0-STUB.jar Fiji.app/plugins Trainable_Segmentation-3.3.4.jar Fiji.app/plugins TrakEM2_-1.3.8.jar Fiji.app/plugins TrakEM2_Archipelago-2.0.4.jar Fiji.app/plugins VIB-lib-2.2.0.jar Fiji.app/jars VIB_-3.0.4.jar Fiji.app/plugins Vaa3d_Reader-2.0.3.jar Fiji.app/plugins Vaa3d_Writer-1.0.3.jar Fiji.app/plugins VectorGraphics2D-0.13.jar Fiji.app/jars VectorString-2.0.3.jar Fiji.app/jars Video_Editing-2.0.1.jar Fiji.app/plugins View5D_-2.5.0.jar Fiji.app/plugins Volume_Calculator-2.0.3.jar Fiji.app/plugins Volume_Viewer-2.01.4.jar Fiji.app/plugins ahocorasick-0.2.4.jar Fiji.app/jars aircompressor-0.21.jar Fiji.app/jars alphanumeric-comparator-1.4.1.jar Fiji.app/jars animal-sniffer-annotations-1.23.jar Fiji.app/jars annotations-13.0.jar Fiji.app/jars ant-1.10.13.jar Fiji.app/jars ant-launcher-1.10.13.jar Fiji.app/jars antlr-3.5.3.jar Fiji.app/jars antlr-runtime-3.5.3.jar Fiji.app/jars antlr.antlr-2.7.7.jar Fiji.app/jars api-common-2.9.0.jar Fiji.app/jars args4j-2.33.jar Fiji.app/jars asm-9.5.jar Fiji.app/jars asm-analysis-9.5.jar Fiji.app/jars asm-commons-9.5.jar Fiji.app/jars asm-tree-9.5.jar Fiji.app/jars asm-util-9.5.jar Fiji.app/jars auto-value-annotations-1.10.1.jar Fiji.app/jars autocomplete-3.3.1.jar Fiji.app/jars aws-java-sdk-core-1.12.465.jar Fiji.app/jars aws-java-sdk-kms-1.12.465.jar Fiji.app/jars aws-java-sdk-s3-1.12.465.jar Fiji.app/jars bUnwarpJ_-2.6.13.jar Fiji.app/plugins base-18.09.0.jar Fiji.app/jars base64-2.3.8.jar Fiji.app/jars batch-processor-0.4.2.jar Fiji.app/jars batik-anim-1.16.jar Fiji.app/jars batik-awt-util-1.16.jar Fiji.app/jars batik-bridge-1.16.jar Fiji.app/jars batik-constants-1.16.jar Fiji.app/jars batik-css-1.16.jar Fiji.app/jars batik-dom-1.16.jar Fiji.app/jars batik-ext-1.16.jar Fiji.app/jars batik-gvt-1.16.jar Fiji.app/jars batik-i18n-1.16.jar Fiji.app/jars batik-parser-1.16.jar Fiji.app/jars batik-script-1.16.jar Fiji.app/jars batik-shared-resources-1.16.jar Fiji.app/jars batik-svg-dom-1.16.jar Fiji.app/jars batik-svggen-1.16.jar Fiji.app/jars batik-util-1.16.jar Fiji.app/jars batik-xml-1.16.jar Fiji.app/jars bcpkix-jdk15on-1.62.jar Fiji.app/jars bcprov-jdk15on-1.62.jar Fiji.app/jars bigdataviewer-core-10.2.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... bigdataviewer-core-10.4.6.jar Fiji.app/jars bigdataviewer-vistools-1.0.0-beta-28.jar .jgo/io.scif/scifio-labeling/0.3.1/... bigdataviewer-vistools-1.0.0-beta-32.jar Fiji.app/jars bigdataviewer_fiji-6.2.4.jar Fiji.app/plugins bigwarp_fiji-7.0.7.jar Fiji.app/plugins bij-1.0.0.jar Fiji.app/jars bio-formats_plugins-6.14.0.jar Fiji.app/plugins blas-0.8.jar Fiji.app/jars blockmatching_-2.1.4.jar Fiji.app/plugins bounce-0.18.jar Fiji.app/jars bsh-2.1.0.jar Fiji.app/jars bytelist-1.0.15.jar Fiji.app/jars caffeine-2.4.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... caffeine-2.9.3.jar Fiji.app/jars cdm-core-5.3.3.jar Fiji.app/jars checker-qual-3.34.0.jar Fiji.app/jars clojure-1.8.0.jar Fiji.app/jars codemodel-2.6.jar Fiji.app/jars collections-generic-4.01.jar Fiji.app/jars commons-beanutils-1.9.4.jar Fiji.app/jars commons-codec-1.15.jar Fiji.app/jars commons-collections-3.2.2.jar Fiji.app/jars commons-collections4-4.4.jar Fiji.app/jars commons-compress-1.20.jar .jgo/io.scif/scifio-labeling/0.3.1/... commons-compress-1.23.0.jar Fiji.app/jars commons-io-2.11.0.jar Fiji.app/jars commons-io-2.7.jar .jgo/io.scif/scifio-labeling/0.3.1/... commons-lang-2.6.jar .jgo/io.scif/scifio-labeling/0.3.1/... commons-lang-2.6.jar Fiji.app/jars commons-lang3-3.12.0.jar Fiji.app/jars commons-logging-1.2.jar Fiji.app/jars commons-math-2.2.jar Fiji.app/jars commons-math3-3.6.1.jar Fiji.app/jars commons-pool2-2.11.1.jar Fiji.app/jars commons-text-1.10.0.jar Fiji.app/jars commons-vfs2-2.0.jar Fiji.app/jars compiler-interface-1.3.5.jar Fiji.app/jars conscrypt-openjdk-uber-2.5.2.jar Fiji.app/jars datasets-0.8.1906.jar Fiji.app/jars directories-26.jar Fiji.app/jars dirgra-0.3.jar Fiji.app/jars ejml-0.24.jar .jgo/io.scif/scifio-labeling/0.3.1/... ejml-0.25.jar Fiji.app/jars error_prone_annotations-2.19.0.jar Fiji.app/jars eventbus-0.0.0-STUB.jar Fiji.app/jars eventbus-1.4.jar .jgo/io.scif/scifio-labeling/0.3.1/... f2jutil-0.8.jar Fiji.app/jars failureaccess-1.0.1.jar Fiji.app/jars ffmpeg-4.2.1-1.5.2-linux-x86.jar Fiji.app/jars/linux32 ffmpeg-4.2.1-1.5.2-macosx-x86_64.jar Fiji.app/jars/macosx ffmpeg-4.2.1-1.5.2-windows-x86.jar Fiji.app/jars/win32 ffmpeg-4.2.1-1.5.2-windows-x86_64.jar Fiji.app/jars/win64 ffmpeg-5.1.2-1.5.8-linux-x86_64.jar Fiji.app/jars/linux64 ffmpeg-5.1.2-1.5.8.jar Fiji.app/jars fiji-2.14.0.jar Fiji.app/jars fiji-compat-0.0.0-STUB.jar Fiji.app/jars fiji-lib-2.1.3.jar Fiji.app/jars filters-2.0.235.jar Fiji.app/jars flatlaf-3.1.1.jar Fiji.app/jars fontchooser-2.5.2.jar Fiji.app/jars formats-api-6.14.0.jar Fiji.app/jars/bio-formats formats-bsd-6.14.0.jar Fiji.app/jars/bio-formats formats-gpl-6.14.0.jar Fiji.app/jars/bio-formats gapic-google-cloud-storage-v2-2.22.1-alpha.jar Fiji.app/jars gax-2.26.0.jar Fiji.app/jars gax-grpc-2.26.0.jar Fiji.app/jars gax-httpjson-0.111.0.jar Fiji.app/jars gcc-runtime-0.8.1906.jar Fiji.app/jars gentyref-0.0.0-STUB.jar Fiji.app/jars gluegen-rt-2.4.0-natives-linux-amd64.jar Fiji.app/jars/linux64 gluegen-rt-2.4.0-rc-20210111-natives-linux-i586.jar Fiji.app/jars/linux32 gluegen-rt-2.4.0-rc-20210111-natives-macosx-universal.jar Fiji.app/jars/macosx gluegen-rt-2.4.0-rc-20210111-natives-windows-amd64.jar Fiji.app/jars/win64 gluegen-rt-2.4.0-rc-20210111-natives-windows-i586.jar Fiji.app/jars/win32 gluegen-rt-2.4.0.jar Fiji.app/jars google-api-client-2.2.0.jar Fiji.app/jars google-api-services-cloudresourcemanager-v1-rev20230129-2.0.0.jar Fiji.app/jars google-api-services-storage-v1-rev20230301-2.0.0.jar Fiji.app/jars google-auth-library-credentials-1.16.1.jar Fiji.app/jars google-auth-library-oauth2-http-1.16.1.jar Fiji.app/jars google-cloud-core-2.16.0.jar Fiji.app/jars google-cloud-core-grpc-2.16.0.jar Fiji.app/jars google-cloud-core-http-2.16.0.jar Fiji.app/jars google-cloud-resourcemanager-1.18.0.jar Fiji.app/jars google-cloud-storage-2.22.1.jar Fiji.app/jars google-http-client-1.43.1.jar Fiji.app/jars google-http-client-apache-v2-1.43.1.jar Fiji.app/jars google-http-client-appengine-1.43.1.jar Fiji.app/jars google-http-client-gson-1.43.1.jar Fiji.app/jars google-http-client-jackson2-1.43.1.jar Fiji.app/jars google-http-client-xml-1.43.1.jar Fiji.app/jars google-oauth-client-1.34.1.jar Fiji.app/jars gpars-1.2.1.jar Fiji.app/jars grDevices-0.8.1906.jar Fiji.app/jars graphics-0.8.1906.jar Fiji.app/jars groovy-3.0.4.jar Fiji.app/jars groovy-dateutil-3.0.4.jar Fiji.app/jars groovy-json-3.0.4.jar Fiji.app/jars groovy-jsr223-3.0.4.jar Fiji.app/jars groovy-swing-3.0.4.jar Fiji.app/jars groovy-templates-3.0.4.jar Fiji.app/jars groovy-xml-3.0.4.jar Fiji.app/jars grpc-alts-1.54.0.jar Fiji.app/jars grpc-api-1.54.0.jar Fiji.app/jars grpc-auth-1.54.0.jar Fiji.app/jars grpc-context-1.55.1.jar Fiji.app/jars grpc-core-1.54.0.jar Fiji.app/jars grpc-google-cloud-storage-v2-2.22.1-alpha.jar Fiji.app/jars grpc-googleapis-1.54.0.jar Fiji.app/jars grpc-grpclb-1.54.0.jar Fiji.app/jars grpc-netty-shaded-1.54.0.jar Fiji.app/jars grpc-protobuf-1.54.0.jar Fiji.app/jars grpc-protobuf-lite-1.54.0.jar Fiji.app/jars grpc-services-1.54.0.jar Fiji.app/jars grpc-stub-1.54.0.jar Fiji.app/jars grpc-xds-1.54.0.jar Fiji.app/jars gson-2.10.1.jar Fiji.app/jars gson-2.8.6.jar .jgo/io.scif/scifio-labeling/0.3.1/... guava-31.1-jre.jar Fiji.app/jars httpclient-4.5.14.jar Fiji.app/jars httpcore-4.4.16.jar Fiji.app/jars httpmime-4.5.14.jar Fiji.app/jars httpservices-5.3.3.jar Fiji.app/jars icu4j-59.1.jar Fiji.app/jars ij-1.54f.jar Fiji.app/jars ij1-patcher-1.2.6.jar Fiji.app/jars ij_ridge_detect-1.4.1.jar Fiji.app/plugins image4j-0.7.jar Fiji.app/jars imagej-2.14.0.jar Fiji.app/jars imagej-common-0.34.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... imagej-common-2.0.4.jar Fiji.app/jars imagej-deprecated-0.2.0.jar Fiji.app/jars imagej-launcher-6.0.2.jar Fiji.app/jars imagej-legacy-1.2.0.jar Fiji.app/jars imagej-mesh-0.8.1.jar Fiji.app/jars imagej-mesh-io-0.1.2.jar Fiji.app/jars imagej-notebook-0.7.1.jar Fiji.app/jars imagej-ops-2.0.0.jar Fiji.app/jars imagej-plugins-batch-0.1.1.jar Fiji.app/jars imagej-plugins-commands-0.8.1.jar Fiji.app/jars imagej-plugins-tools-0.3.1.jar Fiji.app/jars imagej-plugins-uploader-ssh-0.3.2.jar Fiji.app/jars imagej-plugins-uploader-webdav-0.3.3.jar Fiji.app/jars imagej-scripting-0.8.4.jar Fiji.app/jars imagej-ui-awt-0.3.1.jar Fiji.app/jars imagej-ui-swing-1.0.1.jar Fiji.app/jars imagej-updater-1.0.1.jar Fiji.app/jars imglib2-5.12.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-6.1.0.jar Fiji.app/jars imglib2-algorithm-0.12.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-algorithm-0.13.2.jar Fiji.app/jars imglib2-algorithm-fft-0.2.1.jar Fiji.app/jars imglib2-algorithm-gpl-0.3.1.jar Fiji.app/jars imglib2-cache-1.0.0-beta-16.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-cache-1.0.0-beta-17.jar Fiji.app/jars imglib2-ij-2.0.1.jar Fiji.app/jars imglib2-imglyb-1.1.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-label-multisets-0.10.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-label-multisets-0.11.5.jar Fiji.app/jars imglib2-realtransform-3.1.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-realtransform-4.0.1.jar Fiji.app/jars imglib2-roi-0.11.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... imglib2-roi-0.14.1.jar Fiji.app/jars imglib2-ui-0.0.0-STUB.jar Fiji.app/jars imglib2-unsafe-0.4.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... invokebinder-1.10.jar Fiji.app/jars ion-java-1.0.2.jar Fiji.app/jars istack-commons-runtime-3.0.12.jar Fiji.app/jars itextpdf-5.5.13.3.jar Fiji.app/jars ivy-2.5.1.jar Fiji.app/jars j2objc-annotations-2.8.jar Fiji.app/jars j3dcore-1.6.0-scijava-2.jar Fiji.app/jars j3dutils-1.6.0-scijava-2.jar Fiji.app/jars jackrabbit-webdav-2.21.16.jar Fiji.app/jars jackson-annotations-2.14.2.jar Fiji.app/jars jackson-core-2.14.2.jar Fiji.app/jars jackson-databind-2.14.2.jar Fiji.app/jars jackson-dataformat-cbor-2.14.2.jar Fiji.app/jars jackson-dataformat-yaml-2.14.2.jar Fiji.app/jars jackson-jq-1.0.0-preview.20191208.jar Fiji.app/jars jai-codec-1.1.3.jar Fiji.app/jars jai-core-1.1.3.jar Fiji.app/jars jai_imageio-0.0.0-STUB.jar Fiji.app/jars/bio-formats jakarta.activation-api-1.2.2.jar Fiji.app/jars jakarta.xml.bind-api-2.3.3.jar Fiji.app/jars jama-1.0.3.jar .jgo/io.scif/scifio-labeling/0.3.1/... jama-1.0.3.jar Fiji.app/jars java-cup-11b-20160615.jar Fiji.app/jars java-sizeof-0.0.5.jar Fiji.app/jars javaGeom-0.11.1.jar Fiji.app/jars javacpp-1.5.8.jar Fiji.app/jars javassist-3.29.2-GA.jar Fiji.app/jars javax.annotation-api-1.3.2.jar Fiji.app/jars javax.servlet-api-3.1.0.jar Fiji.app/jars jaxb-runtime-2.3.5.jar Fiji.app/jars jblosc-1.0.1.jar Fiji.app/jars jclipboardhelper-0.1.0.jar Fiji.app/jars jcodings-1.0.58.jar Fiji.app/jars jcommander-1.48.jar Fiji.app/jars jcommon-1.0.24.jar Fiji.app/jars jdatepicker-1.3.2.jar Fiji.app/jars jdom2-2.0.6.1.jar Fiji.app/jars jdom2-2.0.6.jar .jgo/io.scif/scifio-labeling/0.3.1/... jep-2.4.2.jar Fiji.app/jars jffi-1.3.11-native.jar Fiji.app/jars jffi-1.3.11.jar Fiji.app/jars jfilechooser-bookmarks-0.1.6.jar Fiji.app/jars jfreechart-1.5.4.jar Fiji.app/jars jfreesvg-3.4.3.jar Fiji.app/jars jgoodies-common-1.7.0.jar Fiji.app/jars jgoodies-forms-1.7.2.jar Fiji.app/jars jgrapht-0.0.0-STUB.jar Fiji.app/jars jgrapht-core-1.4.0.jar Fiji.app/jars jgraphx-4.2.2.jar Fiji.app/jars jhdf5-14.12.6.jar .jgo/io.scif/scifio-labeling/0.3.1/... jhdf5-19.04.1.jar Fiji.app/jars jheaps-0.14.jar Fiji.app/jars jhotdraw-7.6.0.jar Fiji.app/jars jitk-tps-3.0.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... jitk-tps-3.0.3.jar Fiji.app/jars jline-2.14.6.jar Fiji.app/jars jline-native-3.23.0.jar Fiji.app/jars jline-reader-3.23.0.jar Fiji.app/jars jline-terminal-3.23.0.jar Fiji.app/jars jline-terminal-jna-3.23.0.jar Fiji.app/jars jmespath-java-1.12.465.jar Fiji.app/jars jna-5.13.0.jar Fiji.app/jars jnr-a64asm-1.0.0.jar Fiji.app/jars jnr-constants-0.10.4.jar Fiji.app/jars jnr-enxio-0.16.jar Fiji.app/jars jnr-ffi-2.2.13.jar Fiji.app/jars jnr-netdb-1.1.6.jar Fiji.app/jars jnr-posix-3.1.16.jar Fiji.app/jars jnr-unixsocket-0.17.jar Fiji.app/jars jnr-x86asm-1.0.2.jar Fiji.app/jars joal-2.4.0-rc-20210111-natives-linux-i586.jar Fiji.app/jars/linux32 joal-2.4.0-rc-20210111-natives-macosx-universal.jar Fiji.app/jars/macosx joal-2.4.0-rc-20210111-natives-windows-amd64.jar Fiji.app/jars/win64 joal-2.4.0-rc-20210111-natives-windows-i586.jar Fiji.app/jars/win32 jocl-2.4.0-rc-20210111-natives-linux-i586.jar Fiji.app/jars/linux32 jocl-2.4.0-rc-20210111-natives-macosx-universal.jar Fiji.app/jars/macosx jocl-2.4.0-rc-20210111-natives-windows-amd64.jar Fiji.app/jars/win64 jocl-2.4.0-rc-20210111-natives-windows-i586.jar Fiji.app/jars/win32 joda-time-2.12.5.jar Fiji.app/jars jogl-all-2.4.0-natives-linux-amd64.jar Fiji.app/jars/linux64 jogl-all-2.4.0-rc-20210111-natives-linux-i586.jar Fiji.app/jars/linux32 jogl-all-2.4.0-rc-20210111-natives-macosx-universal.jar Fiji.app/jars/macosx jogl-all-2.4.0-rc-20210111-natives-windows-amd64.jar Fiji.app/jars/win64 jogl-all-2.4.0-rc-20210111-natives-windows-i586.jar Fiji.app/jars/win32 jogl-all-2.4.0.jar Fiji.app/jars joml-1.10.5.jar Fiji.app/jars joni-2.1.48.jar Fiji.app/jars jpedalSTD-2.80b11.jar Fiji.app/jars jply-0.2.1.jar Fiji.app/jars jruby-core-9.1.17.0.jar Fiji.app/jars jruby-stdlib-9.1.17.0.jar Fiji.app/jars jsch-0.1.55.jar Fiji.app/jars json-20230227.jar Fiji.app/jars jsoup-1.7.2.jar Fiji.app/jars jsr166y-1.7.0.jar Fiji.app/jars jsr305-3.0.2.jar Fiji.app/jars jtransforms-2.4.jar Fiji.app/jars jung-api-2.0.1.jar Fiji.app/jars jung-graph-impl-2.0.1.jar Fiji.app/jars jxrlib-all-0.2.4.jar Fiji.app/jars/bio-formats jython-shaded-0.0.0-STUB.jar Fiji.app/jars jython-slim-2.7.2.jar Fiji.app/jars jzlib-1.1.3.jar Fiji.app/jars kotlin-stdlib-1.8.22.jar Fiji.app/jars kotlin-stdlib-common-1.8.22.jar Fiji.app/jars kotlin-stdlib-jdk7-1.8.22.jar Fiji.app/jars kotlin-stdlib-jdk8-1.8.22.jar Fiji.app/jars kryo-5.5.0.jar Fiji.app/jars labkit-pixel-classification-0.1.17.jar Fiji.app/jars labkit-ui-0.3.11.jar Fiji.app/jars languagesupport-3.3.0.jar Fiji.app/jars lapack-0.8.jar Fiji.app/jars legacy-imglib1-1.1.10.jar Fiji.app/jars level_sets-1.0.2.jar Fiji.app/plugins listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar Fiji.app/jars log4j-0.0.0-STUB.jar Fiji.app/jars log4j-1.2.17.jar .jgo/io.scif/scifio-labeling/0.3.1/... logback-classic-1.2.12.jar Fiji.app/jars logback-core-1.2.12.jar Fiji.app/jars lz4-java-1.7.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... lz4-java-1.8.0.jar Fiji.app/jars mapdb-0.0.0-STUB.jar Fiji.app/jars markdownj-0.3.0-1.0.2b4.jar Fiji.app/jars maven-scm-api-1.4.jar Fiji.app/jars maven-scm-provider-svn-commons-1.4.jar Fiji.app/jars maven-scm-provider-svnexe-1.4.jar Fiji.app/jars metadata-extractor-2.18.0.jar Fiji.app/jars metakit-5.3.5.jar Fiji.app/jars/bio-formats methods-0.8.1906.jar Fiji.app/jars miglayout-core-5.2.jar .jgo/io.scif/scifio-labeling/0.3.1/... miglayout-core-5.3.jar Fiji.app/jars miglayout-swing-5.2.jar .jgo/io.scif/scifio-labeling/0.3.1/... miglayout-swing-5.3.jar Fiji.app/jars mines-jtk-20151125.jar Fiji.app/jars minimaven-2.2.2.jar Fiji.app/jars minio-5.0.2.jar Fiji.app/jars minlog-1.3.1.jar Fiji.app/jars modulator-1.0.jar Fiji.app/jars mpicbg-1.5.0.jar Fiji.app/jars mpicbg_-1.5.0.jar Fiji.app/plugins mtj-1.0.4.jar Fiji.app/jars multiverse-core-0.7.0.jar Fiji.app/jars n5-2.5.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... n5-2.5.1.jar Fiji.app/jars n5-aws-s3-3.2.0.jar Fiji.app/jars n5-blosc-1.1.0.jar Fiji.app/jars n5-google-cloud-3.3.2.jar Fiji.app/jars n5-hdf5-1.4.2.jar Fiji.app/jars n5-ij-3.2.3.jar Fiji.app/jars n5-imglib2-4.0.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... n5-imglib2-5.0.0.jar Fiji.app/jars n5-viewer_fiji-5.3.0.jar Fiji.app/plugins n5-zarr-0.0.8.jar Fiji.app/jars nailgun-server-0.9.1.jar Fiji.app/jars native-lib-loader-2.4.0.jar Fiji.app/jars netcdf-0.0.0-STUB.jar Fiji.app/jars netlib-java-0.9.3-renjin-patched-2.jar Fiji.app/jars netty-buffer-4.1.45.Final.jar Fiji.app/jars netty-codec-4.1.45.Final.jar Fiji.app/jars netty-common-4.1.45.Final.jar Fiji.app/jars netty-handler-4.1.45.Final.jar Fiji.app/jars netty-resolver-4.1.45.Final.jar Fiji.app/jars netty-transport-4.1.45.Final.jar Fiji.app/jars object-inspector-0.1.jar Fiji.app/jars objenesis-3.3.jar Fiji.app/jars ojalgo-45.1.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... ojalgo-45.1.1.jar Fiji.app/jars okhttp-4.11.0.jar Fiji.app/jars okio-3.3.0.jar Fiji.app/jars okio-jvm-3.3.0.jar Fiji.app/jars ome-codecs-0.4.5.jar Fiji.app/jars/bio-formats ome-common-6.0.17.jar Fiji.app/jars/bio-formats ome-jai-0.1.3.jar Fiji.app/jars/bio-formats ome-mdbtools-5.3.2.jar Fiji.app/jars/bio-formats ome-poi-5.3.7.jar Fiji.app/jars/bio-formats ome-xml-6.3.3.jar Fiji.app/jars/bio-formats op-finder-0.1.4.jar Fiji.app/jars opencensus-api-0.31.1.jar Fiji.app/jars opencensus-contrib-http-util-0.24.0.jar Fiji.app/jars opencensus-proto-0.2.0.jar Fiji.app/jars opencsv-5.7.1.jar Fiji.app/jars options-1.4.jar Fiji.app/jars pal-optimization-2.0.1.jar Fiji.app/jars panorama_-3.0.2.jar Fiji.app/plugins parsington-2.0.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... parsington-3.1.0.jar Fiji.app/jars perf4j-0.9.16.jar Fiji.app/jars perfmark-api-0.26.0.jar Fiji.app/jars picocli-4.7.3.jar Fiji.app/jars plexus-utils-3.5.1.jar Fiji.app/jars postgresql-42.6.0.jar Fiji.app/jars prettytime-4.0.1.Final.jar Fiji.app/jars proto-google-cloud-resourcemanager-v3-1.18.0.jar Fiji.app/jars proto-google-cloud-storage-v2-2.22.1-alpha.jar Fiji.app/jars proto-google-common-protos-2.17.0.jar Fiji.app/jars proto-google-iam-v1-1.12.0.jar Fiji.app/jars protobuf-java-3.23.0.jar Fiji.app/jars protobuf-java-util-3.23.0.jar Fiji.app/jars re2j-1.7.jar Fiji.app/jars reflectasm-1.11.9.jar Fiji.app/jars regexp-1.3.jar Fiji.app/jars register_virtual_stack_slices-3.0.8.jar Fiji.app/plugins registration_3d-2.0.1.jar Fiji.app/plugins reload4j-1.2.25.jar Fiji.app/jars renjin-appl-0.8.1906.jar Fiji.app/jars renjin-core-0.8.1906.jar Fiji.app/jars renjin-gnur-runtime-0.8.1906.jar Fiji.app/jars renjin-script-engine-0.8.1906.jar Fiji.app/jars rhino-1.7.14.jar Fiji.app/jars rsyntaxtextarea-3.3.3.jar Fiji.app/jars scala-asm-9.4.0-scala-1.jar Fiji.app/jars scala-library-2.13.10.jar Fiji.app/jars scala3-compiler_3-3.3.0.jar Fiji.app/jars scala3-interfaces-3.3.0.jar Fiji.app/jars scala3-library_3-3.3.0.jar Fiji.app/jars scifio-0.42.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... scifio-0.45.0.jar Fiji.app/jars scifio-bf-compat-4.1.1.jar Fiji.app/jars scifio-cli-0.6.1.jar Fiji.app/jars scifio-hdf5-0.2.2.jar Fiji.app/jars scifio-jai-imageio-1.1.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... scifio-jai-imageio-1.1.1.jar Fiji.app/jars scifio-labeling-0.3.1.jar .jgo/io.scif/scifio-labeling/0.3.1/... scifio-lifesci-0.9.0.jar Fiji.app/jars scifio-ome-xml-0.17.1.jar Fiji.app/jars scijava-common-2.87.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... scijava-common-2.94.2.jar Fiji.app/jars scijava-config-2.0.3.jar Fiji.app/jars scijava-io-http-0.2.1.jar Fiji.app/jars scijava-listeners-1.0.0-beta-3.jar .jgo/io.scif/scifio-labeling/0.3.1/... scijava-listeners-1.0.0-beta-3.jar Fiji.app/jars scijava-optional-1.0.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... scijava-optional-1.0.1.jar Fiji.app/jars scijava-plot-0.2.0.jar Fiji.app/jars scijava-plugins-commands-0.2.4.jar Fiji.app/jars scijava-plugins-platforms-0.3.1.jar Fiji.app/jars scijava-plugins-text-markdown-0.1.3.jar Fiji.app/jars scijava-plugins-text-plain-0.1.4.jar Fiji.app/jars scijava-search-2.0.3.jar Fiji.app/jars scijava-table-0.7.0.jar .jgo/io.scif/scifio-labeling/0.3.1/... scijava-table-1.0.2.jar Fiji.app/jars scijava-ui-awt-0.1.7.jar Fiji.app/jars scijava-ui-swing-1.0.1.jar Fiji.app/jars script-editor-1.0.0.jar Fiji.app/jars script-editor-jython-1.0.0.jar Fiji.app/jars script-editor-scala-0.2.1.jar Fiji.app/jars scripting-beanshell-0.4.1.jar Fiji.app/jars scripting-clojure-0.1.6.jar Fiji.app/jars scripting-groovy-0.4.2.jar Fiji.app/jars scripting-java-0.4.1.jar Fiji.app/jars scripting-javascript-1.0.0.jar Fiji.app/jars scripting-jruby-0.3.1.jar Fiji.app/jars scripting-jython-1.0.1.jar Fiji.app/jars scripting-renjin-0.2.3.jar Fiji.app/jars scripting-scala-0.3.2.jar Fiji.app/jars serializer-2.7.2.jar Fiji.app/jars slf4j-api-1.7.30.jar .jgo/io.scif/scifio-labeling/0.3.1/... slf4j-api-1.7.36.jar Fiji.app/jars snakeyaml-1.26.jar .jgo/io.scif/scifio-labeling/0.3.1/... snakeyaml-1.33.jar Fiji.app/jars specification-6.3.3.jar Fiji.app/jars/bio-formats spim_data-2.2.4.jar .jgo/io.scif/scifio-labeling/0.3.1/... spim_data-2.2.7.jar Fiji.app/jars sqlite-jdbc-3.28.0.jar Fiji.app/jars stats-0.8.1906.jar Fiji.app/jars swing-checkbox-tree-1.0.2.jar Fiji.app/jars swing-worker-1.1.jar Fiji.app/jars swingx-1.6.1.jar Fiji.app/jars tasty-core_3-3.3.0.jar Fiji.app/jars threetenbp-1.6.8.jar Fiji.app/jars trakem2-transform-1.0.1.jar Fiji.app/jars trakem2_tps-2.0.0.jar Fiji.app/plugins trove4j-3.0.3.jar .jgo/io.scif/scifio-labeling/0.3.1/... trove4j-3.0.3.jar Fiji.app/jars turbojpeg-6.14.0.jar Fiji.app/jars/bio-formats txw2-2.3.5.jar Fiji.app/jars udunits-4.3.18.jar .jgo/io.scif/scifio-labeling/0.3.1/... udunits-4.3.18.jar Fiji.app/jars ui-behaviour-2.0.3.jar .jgo/io.scif/scifio-labeling/0.3.1/... ui-behaviour-2.0.7.jar Fiji.app/jars unsafe-fences-1.0.jar Fiji.app/jars util-interface-1.3.0.jar Fiji.app/jars utils-0.8.1906.jar Fiji.app/jars vecmath-1.6.0-scijava-2.jar Fiji.app/jars weave_jy2java-2.1.1.jar Fiji.app/jars weka-dev-3.9.6.jar Fiji.app/jars xalan-2.7.2.jar Fiji.app/jars xchart-3.5.4.jar Fiji.app/jars xerbla-0.8.jar Fiji.app/jars xercesImpl-2.12.2.jar Fiji.app/jars xml-apis-1.4.01.jar Fiji.app/jars xml-apis-ext-1.3.04.jar Fiji.app/jars xmlgraphics-commons-2.8.jar Fiji.app/jars xmpcore-6.1.11.jar Fiji.app/jars xpp3-1.1.4c.jar Fiji.app/jars xz-1.8.jar .jgo/io.scif/scifio-labeling/0.3.1/... xz-1.9.jar Fiji.app/jars yecht-0.0.0-STUB.jar Fiji.app/jars z_spacing-1.1.2.jar Fiji.app/plugins ```

Many items are duplicated, such as scijava-common 2.87.0 from jgo vs 2.94.2 in Fiji.

This is a major problem, because unfortunately, when there are multiple versions of a class on the classpath, which version takes precedence is not guaranteed by classpath order. E.g.: in my setup here, the old scijava-common 2.87.0 takes precedence over the 2.94.2 Fiji one, leading to a failure to initialize PyImageJ completely.

hinerm commented 1 year ago

Action items after discussion with @ctrueden and @gselzer:

pyimagej

ImageJ2

Napari-imagej

ctrueden commented 1 year ago

Add scifio-labeling as a managed dependency instead of hard-coded version, if ImageJ2 is < 2.15.0 & >= 2.10.0 Never add scifio-labeling as a dependency if wrapping a local app or if IJ2 is < 2.10.0

Done in 2d1bcf168440520992c90bd783364567a111c995.

Add a test that curls a Fiji.app and wraps the local install

Done in 9178633eb99447d24869ba9ae752906d24d75cdd.

And I uploaded scifio-labeling-0.3.1.jar to the Java-8 update site, so that this test will pass once the Fiji.app bundles are regenerated by https://github.com/fiji/fiji-builds/actions/workflows/build.yml.

Add scifio-labeling as a dependency

Done in imagej/imagej2@ce675efab16611cc9e70f031228cf5052f75a60f.

Add unit tests that test versions of IJ2

Done in 246888c087988101dbd5ac91667efccfacd1ffdf. For now we test 2.10.0 and 2.14.0 ImageJ2 standalone, but more can be added easily as needed.

ctrueden commented 1 year ago

For the napari-imagej "Add a recommended version for IJ2 2.10.0" action item I filed imagej/napari-imagej#289.

gselzer commented 1 year ago

For the napari-imagej "Add a recommended version for IJ2 2.10.0" action item I filed imagej/napari-imagej#289.

I then added the fix solving this issue onto imagej/napari-imagej#264