Closed frauzufall closed 3 years ago
For me, the launcher fails to detect the JRE shipped with Fiji and then fails to use the system JVM correctly. Error:
Could not load Java library '/home/saalfeld/packages/Fiji.app/java/linux-amd64/jdk1.8.0_172/jre//lib/server/libjvm.so': /home/saalfeld/packages/Fiji.app/java/linux-amd64/jdk1.8.0_172/jre//lib/server/libjvm.so: cannot open shared object file: No such file or directory
Warning: falling back to System JVM
[ERROR] Invalid service: net.imagej.legacy.LegacyService
java.lang.NoSuchMethodError: org.scijava.Context.getClassLoader()Ljava/lang/ClassLoader;
at net.imagej.util.AppUtils.findResources(AppUtils.java:107)
at net.imagej.lut.DefaultLUTService.findLUTs(DefaultLUTService.java:124)
at net.imagej.lut.DefaultLUTService$1.get(DefaultLUTService.java:242)
at org.scijava.object.ObjectIndex.resolvePending(ObjectIndex.java:388)
at org.scijava.object.ObjectIndex.get(ObjectIndex.java:133)
at org.scijava.object.ObjectIndex.getAll(ObjectIndex.java:122)
at org.scijava.module.DefaultModuleService.getModules(DefaultModuleService.java:141)
at net.imagej.legacy.LegacyService.initialize(LegacyService.java:498)
at org.scijava.service.ServiceHelper.createServiceRecursively(ServiceHelper.java:354)
at org.scijava.service.ServiceHelper.createExactService(ServiceHelper.java:270)
at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:232)
at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:195)
at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:167)
at org.scijava.Context.<init>(Context.java:281)
at org.scijava.Context.<init>(Context.java:237)
at org.scijava.Context.<init>(Context.java:177)
at org.scijava.Context.<init>(Context.java:163)
at net.imagej.ImageJ.<init>(ImageJ.java:77)
at net.imagej.Main.main(Main.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:291)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:198)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:89)
[ERROR] No match: net.imagej.legacy.LegacyService
[ERROR] null
java.lang.IllegalArgumentException: Required service is missing: net.imagej.legacy.LegacyService
Context: org.scijava.Context@fb713e7
ClassLoader: java.net.URLClassLoader@5e8507f1
-- Services known to context --
org.scijava.event.DefaultEventService [priority = 100000.0]
net.imagej.legacy.display.LegacyImageDisplayService [priority = 100.0]
net.imagej.lut.DefaultLUTService [priority = 100.0]
fiji.plugin.trackmate.TrackMateService [priority = 0.0]
io.scif.DefaultMetadataService [priority = 0.0]
io.scif.codec.DefaultCodecService [priority = 0.0]
io.scif.formats.qt.DefaultQTJavaService [priority = 0.0]
io.scif.formats.tiff.DefaultTiffService [priority = 0.0]
io.scif.gui.DefaultGUIService [priority = 0.0]
io.scif.img.DefaultImgUtilityService [priority = 0.0]
io.scif.img.converters.DefaultPlaneConverterService [priority = 0.0]
io.scif.ome.services.DefaultOMEMetadataService [priority = 0.0]
io.scif.ome.services.DefaultOMEXMLService [priority = 0.0]
io.scif.refs.DefaultRefManagerService [priority = 0.0]
io.scif.services.DefaultDatasetIOService [priority = 0.0]
io.scif.services.DefaultFilePatternService [priority = 0.0]
io.scif.services.DefaultFormatService [priority = 0.0]
io.scif.services.DefaultTranslatorService [priority = 0.0]
io.scif.services.JAIIIOServiceImpl [priority = 0.0]
io.scif.xml.DefaultXMLService [priority = 0.0]
net.imagej.DefaultDatasetService [priority = 0.0]
net.imagej.DefaultImgPlusService [priority = 0.0]
net.imagej.animation.DefaultAnimationService [priority = 0.0]
net.imagej.autoscale.DefaultAutoscaleService [priority = 0.0]
net.imagej.display.DefaultImageDisplayService [priority = 0.0]
net.imagej.display.DefaultOverlayService [priority = 0.0]
net.imagej.display.DefaultWindowService [priority = 0.0]
net.imagej.display.DefaultZoomService [priority = 0.0]
net.imagej.legacy.plugin.MacroExtensionAutoCompletionService [priority = 0.0]
net.imagej.measure.DefaultMeasurementService [priority = 0.0]
net.imagej.measure.DefaultStatisticsService [priority = 0.0]
net.imagej.notebook.DefaultNotebookService [priority = 0.0]
net.imagej.operator.DefaultCalculatorService [priority = 0.0]
net.imagej.ops.DefaultNamespaceService [priority = 0.0]
net.imagej.ops.DefaultOpMatchingService [priority = 0.0]
net.imagej.ops.DefaultOpService [priority = 0.0]
net.imagej.roi.DefaultROIService [priority = 0.0]
net.imagej.sampler.DefaultSamplerService [priority = 0.0]
net.imagej.table.DefaultTableService [priority = 0.0]
net.imagej.threshold.DefaultThresholdService [priority = 0.0]
net.imagej.types.DefaultDataTypeService [priority = 0.0]
net.imagej.ui.DefaultImageJUIService [priority = 0.0]
net.imagej.ui.awt.AWTRenderingService [priority = 0.0]
net.imagej.ui.awt.AWTScreenCaptureService [priority = 0.0]
net.imagej.ui.swing.ops.DefaultOpFinderService [priority = 0.0]
net.imagej.ui.swing.overlay.JHotDrawService [priority = 0.0]
net.imagej.units.DefaultUnitService [priority = 0.0]
net.imagej.updater.DefaultUpdateService [priority = 0.0]
net.imagej.updater.DefaultUploaderService [priority = 0.0]
org.scijava.app.DefaultAppService [priority = 0.0]
org.scijava.app.DefaultStatusService [priority = 0.0]
org.scijava.command.DefaultCommandService [priority = 0.0]
org.scijava.console.DefaultConsoleService [priority = 0.0]
org.scijava.convert.DefaultConvertService [priority = 0.0]
org.scijava.display.DefaultDisplayService [priority = 0.0]
org.scijava.download.DefaultDownloadService [priority = 0.0]
org.scijava.event.DefaultEventHistory [priority = 0.0]
org.scijava.input.DefaultInputService [priority = 0.0]
org.scijava.io.DefaultIOService [priority = 0.0]
org.scijava.io.DefaultRecentFileService [priority = 0.0]
org.scijava.io.handle.DefaultDataHandleService [priority = 0.0]
org.scijava.io.location.DefaultLocationService [priority = 0.0]
org.scijava.io.nio.DefaultNIOService [priority = 0.0]
org.scijava.main.DefaultMainService [priority = 0.0]
org.scijava.menu.DefaultMenuService [priority = 0.0]
org.scijava.module.DefaultModuleService [priority = 0.0]
org.scijava.object.DefaultObjectService [priority = 0.0]
org.scijava.options.DefaultOptionsService [priority = 0.0]
org.scijava.parse.DefaultParseService [priority = 0.0]
org.scijava.platform.DefaultPlatformService [priority = 0.0]
org.scijava.plugin.DefaultPluginService [priority = 0.0]
org.scijava.prefs.DefaultPrefService [priority = 0.0]
org.scijava.run.DefaultRunService [priority = 0.0]
org.scijava.script.DefaultScriptHeaderService [priority = 0.0]
org.scijava.script.DefaultScriptService [priority = 0.0]
org.scijava.script.process.DefaultScriptProcessorService [priority = 0.0]
org.scijava.search.DefaultSearchService [priority = 0.0]
org.scijava.search.javadoc.DefaultJavadocService [priority = 0.0]
org.scijava.startup.DefaultStartupService [priority = 0.0]
org.scijava.table.io.DefaultTableIOService [priority = 0.0]
org.scijava.task.DefaultTaskService [priority = 0.0]
org.scijava.text.DefaultTextService [priority = 0.0]
org.scijava.thread.DefaultThreadService [priority = 0.0]
org.scijava.tool.DefaultToolService [priority = 0.0]
org.scijava.ui.DefaultUIService [priority = 0.0]
org.scijava.ui.dnd.DefaultDragAndDropService [priority = 0.0]
org.scijava.ui.swing.SwingIconService [priority = 0.0]
org.scijava.ui.swing.script.DefaultLanguageSupportService [priority = 0.0]
org.scijava.welcome.DefaultWelcomeService [priority = 0.0]
org.scijava.widget.DefaultWidgetService [priority = 0.0]
sc.fiji.compat.DefaultFijiService [priority = 0.0]
io.scif.services.DefaultInitializeService [priority = -100.0]
net.imagej.display.DummyScreenCaptureService [priority = -100.0]
net.imagej.render.DummyRenderingService [priority = -100.0]
org.scijava.batch.FileBatchService [priority = -100.0]
org.scijava.log.StderrLogService [priority = -100.0]
org.scijava.platform.DefaultAppEventService [priority = -100.0]
org.scijava.cache.DefaultCacheService [priority = -10000.0]
-- Classpath of ClassLoader --
/home/saalfeld/packages/Fiji.app/plugins/
at org.scijava.Context.inject(Context.java:474)
at org.scijava.Context.inject(Context.java:386)
at org.scijava.plugin.DefaultPluginService.createInstance(DefaultPluginService.java:238)
at org.scijava.ui.DefaultUIService.discoverUIs(DefaultUIService.java:503)
at org.scijava.ui.DefaultUIService.getDefaultUI(DefaultUIService.java:193)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:140)
at org.scijava.AbstractGateway.launch(AbstractGateway.java:104)
at net.imagej.Main.main(Main.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:291)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:198)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:89)
Error while executing the main() method of class 'net.imagej.Main':
java.lang.NullPointerException
at net.imagej.legacy.ui.LegacyUI.ij1Helper(LegacyUI.java:119)
at net.imagej.legacy.ui.LegacyUI.show(LegacyUI.java:130)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:157)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:142)
at org.scijava.AbstractGateway.launch(AbstractGateway.java:104)
at net.imagej.Main.main(Main.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:291)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:198)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:89)
See also the associated forum thread. As I replied there: this looks like the fallback to system Java is working. Something is wrong with the runtime classpath(?) or plugin discovery(?), though. Very weird...
The laucher is not able to pick up the JRE shipped with the latest Fiji version, see this issue.
To get the most recent launcher version, we used the
trim-the-fat
branch (which should probably be finished and merged, as far as I understood?) and deleted this commit, otherwise it would not build. The resulting Imagej-linux64 binary prints this message:It tries to use
lib/server/libjvm.so
instead oflib/amd64/server/libjvm.so
which would be the correct path.I think I was able to track it down to this line where it should pick
lib/amd64/server/libjvm.so
but usedlib/server/libjvm.so
instead.