Request for Testers: ImageJ Launcher

Hello everyone!

For a while now we’ve been working on an updated launcher for ImageJ, particularly to facilitate changes to the bundled Java.

We have a working candidate for distribution, which was recently released, but unfortunately rolled back after reports of undesired behavior.

Testing of the launcher was primarily done with complete bundles (i.e. what would be available from the Downloads page). This missed an apparent incompatibility with a prior bundled Java, in the cases of existing installations updating to the new launcher.

We have not been able to reproduce this incompatibility locally, and we are only aware of it on 64-bit Windows. So, we are now looking for more people to try updating to the new launchers.

If you’re willing to be a test subject, just add this temporary update site and let me know if you run into any odd/undesired behavior. Thank you for your assistance!

4 Likes

Hi Mark @hinerm,

great initiative! I just activated that new update site and restarted Fiji. It shows the black window again and a new error message:

For your convenience, I uploaded the whole Fiji folder. It is a freshly downloaded Fiji with just that update site enabled. Furthermore, I ran it on a Windows that was installed two days ago where almost nothing is installed. JAVA_HOME is not set and this is in the path:

If I rename the exe to debug.exe, it outputs the text below.

Thanks for doing this! I’m happy report again if there is an update or any questions.

Cheers,
Robert

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jre/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/client/jvm.dll'
                    file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/client/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'bin/client/jvm.dll'
                    file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'bin/client/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jre/bin/server/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/server/jvm.dll'
                    found a candidate: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/server/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/server/jvm.dll'
            find_newest complete with result: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172'
            set_relative_java_home:
                relative_java_home -> java/win64/jdk1.8.0_172/
            set_library_path:
                library_path is now jre/bin/server/jvm.dll
            Default library path (relative): jre/bin/server/jvm.dll
Detected ImageJ2
get_jre_home:
    get_java_home:
        Trying to use relative_java_home: C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
        is_java_home:
            directory = C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
            is_jre_home:
                directory is C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
                Ignoring JAVA_HOME (does not exist): C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/client/jvm.dll
                Ignoring JAVA_HOME (does not exist): C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//bin/client/jvm.dll
                Identified JAVA_HOME: C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
        Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
    Setting jre to C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
    JAVA_HOME appears to be a JRE: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/'
Available RAM: 24283MB, using 3/4 of that: 18213MB
javaw -Dpython.cachedir.skip=true -Dplugins.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Xmx18213m -Dimagej.splash=true -Djava.class.path=C:\\programs\\FIJI-W~2\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dij.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Dij.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Djava.library.path=C:\\programs\\FIJI-W~2\\Fiji.app/lib/win64;C:\\programs\\FIJI-W~2\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
get_jre_home:
    get_jre_home: Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
Using JAVA_HOME C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
Opening Java library C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
Could not open 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll'
Could not load Java library 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll': The specified module could not be found.

Warning: falling back to System JVM

2 Likes

Addendum: When attempting to uninstall the launcher update site, I receive this error message during updater startup:

Amazing, thank you @haesleinhuepf. I can confirm that this Fiji runs without any problems on my system. :sob: :sob:

And I also do not get this message when disabling the launcher update site.

Soooo… :poop:

OK, thoughts:

  • Which Windows 10 are you running? Home/Pro/Enterprise?
  • Does the computer have any level of IT management on it?
  • Do you have admin rights? If so, what happens if you launch ImageJ-win64.exe from an admin prompt?
1 Like

Can you maybe try on a blank system? With no developer stuff installed? Or alternatively: A blank user profile with no path/jvm/… config?

Good question. :smile: It’s this recently released Windows 10 Pro 20H2

Nope. It’s a super-normal windows installed via a freshly downloaded Windows-ISO on a USB-drive (a.k.a. MediaCreationTool). It’s by the way the same computer as earlier this week, just a new hard-drive and thus, a freshly installed OS.

It looks the same…

And here’s again the output:

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jre/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/client/jvm.dll'
                    file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/client/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'bin/client/jvm.dll'
                    file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'bin/client/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\programs\FIJI-W~2\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jre/bin/server/jvm.dll'
                find_newest:
                    searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/server/jvm.dll'
                    found a candidate: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172'
                    find_newest:
                        searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/server/jvm.dll'
                        file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/server/jvm.dll'
            find_newest complete with result: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172'
            set_relative_java_home:
                relative_java_home -> java/win64/jdk1.8.0_172/
            set_library_path:
                library_path is now jre/bin/server/jvm.dll
            Default library path (relative): jre/bin/server/jvm.dll
Detected ImageJ2
get_jre_home:
    get_java_home:
        Trying to use relative_java_home: C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
        is_java_home:
            directory = C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
            is_jre_home:
                directory is C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
                Ignoring JAVA_HOME (does not exist): C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/client/jvm.dll
                Ignoring JAVA_HOME (does not exist): C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//bin/client/jvm.dll
                Identified JAVA_HOME: C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
        Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
    Setting jre to C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
    JAVA_HOME appears to be a JRE: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/'
Available RAM: 24283MB, using 3/4 of that: 18213MB
javaw -Dpython.cachedir.skip=true -Dplugins.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Xmx18213m -Dimagej.splash=true -Djava.class.path=C:\\programs\\FIJI-W~2\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dij.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Dij.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Djava.library.path=C:\\programs\\FIJI-W~2\\Fiji.app/lib/win64;C:\\programs\\FIJI-W~2\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
get_jre_home:
    get_jre_home: Returning C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
Using JAVA_HOME C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
Opening Java library C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
Could not open 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll'
Could not load Java library 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll': The specified module could not be found.

Warning: falling back to System JVM

1 Like

So, yes I definitely can. Your Fiji is popping the console because it is failing to link to its bundled Java in this call which leads here.

The error message, The specified module could not be found., means it has an unsatisfied or corrupted dependency. Java’s native dependencies should just be core dlls e.g. in C:\Windows\system32\. It is very odd that the old launcher would be able to link to this dll but the new one is failing. Do you have the output from running the ImageJ-win64.old.exe as debug.exe?

I would also love to see the ldd output on C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dl. If you’re feeling ambitious you could use cygwin to check.

The “Could not find a JavaScript engine” is coming from Fiji launching with your system Java 15 (which removed nashorn). Hopefully the error message from the updater is also related to Java 15.

1 Like

Hi @hinerm,

On ubuntu 20.04 I get this error on startup

[ERROR] Invalid service: sc.fiji.filamentdetector.gui.GUIStatusService
java.lang.NullPointerException
	at java.util.ArrayList.addAll(ArrayList.java:583)
	at org.scijava.util.ClassUtils.getAnnotatedFields(ClassUtils.java:193)
	at org.scijava.util.ClassUtils.getAnnotatedFields(ClassUtils.java:163)
	at org.scijava.service.ServiceHelper.createServiceRecursively(ServiceHelper.java:315)
	at org.scijava.service.ServiceHelper.createExactService(ServiceHelper.java:267)
	at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:229)
	at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:192)
	at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:164)
	at org.scijava.Context.<init>(Context.java:278)
	at org.scijava.Context.<init>(Context.java:234)
	at org.scijava.Context.<init>(Context.java:174)
	at org.scijava.Context.<init>(Context.java:160)
	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:279)
	at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:186)
	at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:87)
[ERROR] No match: sc.fiji.filamentdetector.gui.GUIStatusService

though I’m not sure it’s your problem because it looks to be the same issue as this:

Things seem okay other than that (I just tested for a few minutes)
John

2 Likes

Great hint!

I just deleted JDK15, removed it from the PATH and now the new launcher doesn’t start anymore at all. The old.exe still does its job. No output by debug.exe. Just quickly popping up a window (< 1 sec).

After restoring JDK15 and adding it to the PATH, I renamed old.exe to debug.exe. It says:

find_newest: searching 'C:\programs\FIJI-W~2\Fiji.app/java' for 'jre/bin/server/jvm.dll'
find_newest: file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/jre/bin/server/jvm.dll'
find_newest: searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64' for 'jre/bin/server/jvm.dll'
find_newest: file not found: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jre/bin/server/jvm.dll'
find_newest: searching 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/server/jvm.dll'
find_newest: found a candidate: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172'
Detected ImageJ2
JRE not found in 'C:\programs\FIJI-W~2\Fiji.app/jre'
JAVA_HOME contains a JRE: 'C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre'
Available RAM: 24283MB, using 3/4 of that: 18213MB
java -Dpython.cachedir.skip=true -Dplugins.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Xmx18213m -Xincgc -XX:PermSize=128m -Djava.class.path=C:\\programs\\FIJI-W~2\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dij.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.dir=C:\\programs\\FIJI-W~2\\Fiji.app -Dfiji.defaultLibPath=bin/server/jvm.dll -Dfiji.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Dij.executable=C:\\programs\\fiji-win64_test\\Fiji.app\\debug.exe -Djava.library.path=C:\\programs\\FIJI-W~2\\Fiji.app/lib/win64;C:\\programs\\FIJI-W~2\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
Using JAVA_HOME C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre
Opening Java library C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
Adding option: -Djava.home=C:\programs\FIJI-W~2\Fiji.app/java/win64/jdk1.8.0_172/
ij1.plugin.dirs: null
$HOME/.plugins: C:\Users\rober\.plugins does not exist
Launching main class net.imagej.Main with parameters []
Class loader = sun.misc.Launcher$AppClassLoader@c387f44
Checking class loader: sun.misc.Launcher$AppClassLoader@c387f44
Checking URL: file:/C:/programs/fiji-win64_test/Fiji.app/jars/imagej-launcher-6.0.0.jar
Not Eclipse because first entry is: file:/C:/programs/fiji-win64_test/Fiji.app/jars/imagej-launcher-6.0.0.jar
[DEBUG] Creating service: org.scijava.event.DefaultEventService
[DEBUG] Creating service: org.scijava.log.StderrLogService
[DEBUG] Created service 'org.scijava.log.StderrLogService' in 1 ms
[DEBUG] Creating service: org.scijava.thread.DefaultThreadService
[DEBUG] Created service 'org.scijava.thread.DefaultThreadService' in 1 ms
[DEBUG] Created service 'org.scijava.event.DefaultEventService' in 43 ms
[DEBUG] Creating service: org.scijava.app.DefaultAppService
[DEBUG] Creating service: org.scijava.plugin.DefaultPluginService
[DEBUG] Found 1788 plugins.
..

Can I run it on a different system? Or doesn’t that make sense at all? I ruined some systems with cygwin in former days…

I have tested the new launcher on Win10 Pro 64bit.

No major issues during and due to the update.
FIJI is starting without remaining console window.

Only one (minor) issue:
After updating and starting FIJI the GUI looks different

I am used to the following appearance which I still get when starting FIJI with ImageJ-Win64.old.exe

Launcher_old_GUI

I’m using the following ImageJ.cfg settings to modify the appearance of the GUI

.
jre\bin\javaw.exe
-Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar ij.ImageJ

Removing -Dsun.java2d.dpiaware=true doesn’t help.
The GUI still looks as shown in the first image.

1 Like

This seems to be unrelated to the launcher, but rather a bug in the updater, no? I remember having seen similar sorter-related errors in the past, I think it was when either adding update sites or when uploading to an (sftp-backed) update site. But I never investigated how to reproduce the error…

This is also a Java 15 issue. I can locally reproduce both this and the Could not find JavaScript engine message using an oracle Java 15 JDK.

1 Like

@phaub

This difference in appearance could also be explained because there are different Java versions being used in those two screenshots. The 1.8.0_172 is the old bundled version of Java. I am assuming that the 12.0.1 Java is your System Java and/or set on JAVA_HOME. This is actually great because it suggests that the new launcher in fact failed to link to the bundled 1.8.0_172.

I am not sure why it didn’t pop the console as it did for @haesleinhuepf, but we could confirm by making a copy of the new launcher to debug.exe and pasting its output at startup.

@phaub @haesleinhuepf Could you please do me a favor on your Win10 Pro systems:

  1. Download the Azul software JDK 8 + JavaFX
  2. Put it in your Fiji.app/java/win64 directory
  3. Move jdk1.8.0_172 out of the Fiji.app/java/win64 directory
  4. Launch ImageJ using the new launcher renamed to debug.exe
  5. Paste the results here

Thank you!!

It has to be on the Win10 Pro system. The ldd tool tells us where the required dynamically linked native libraries are found on that system. I totally appreciate your distrust of cygwin… alternatively you could use the Git Bash terminal that comes with Git for Windows, which is way less invasive and I apologize for not suggesting that first.

And actually I think we’d need the ldd output from:

  1. The jdk1.8.0_172//jre/bin/server/jvm.dll
  2. ImageJ-win64.old.exe
  3. ImageJ-win64.exe

That’s correct :eagle:

I have downloaded zulu8.50.0.21-ca-jdk8.0.272-win_x64 and zulu8.50.0.21-ca-fx-jdk8.0.272-win_x64 and put the whole content into java\win64.

I tested both JDK’s with debug.exe. Both generated identical debug output:

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\Prog\Fiji.app/java/win64/
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                found a candidate: 'C:\Prog\Fiji.app/java/win64/'
            find_newest complete with result: 'C:\Prog\Fiji.app/java/win64/'
            set_relative_java_home:
                relative_java_home -> java/win64/
            set_library_path:
                library_path is now jre/bin/server/jvm.dll
            Default library path (relative): jre/bin/server/jvm.dll
Detected ImageJ2
ImageJ.cfg:1: .
ImageJ.cfg:2: jre\bin\javaw.exe
set_legacy_jre_path:
    Using JRE from ImageJ.cfg: C:\Prog\Fiji.app/jre
ImageJ.cfg:3: -Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar ij.ImageJ
Found Java options in ImageJ.cfg: '-Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar'
get_jre_home:
    Setting jre to C:\Prog\Fiji.app/jre
    JAVA_HOME points to a JRE: 'C:\Prog\Fiji.app/jre'
javaw -Dsun.java2d.dpiaware=true -Xmx12184m -Dpython.cachedir.skip=true -Dplugins.dir=C:\\Prog\\Fiji.app -Dimagej.splash=true -Djava.class.path=C:\\Prog\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\Prog\\Fiji.app -Dij.dir=C:\\Prog\\Fiji.app -Dfiji.dir=C:\\Prog\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\Prog\\Fiji.app\\debug.exe -Dij.executable=C:\\Prog\\Fiji.app\\debug.exe -Djava.library.path=C:\\Prog\\Fiji.app/lib/win64;C:\\Prog\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
Using JAVA_HOME C:\Prog\Fiji.app/jre
Opening Java library C:\Prog\Fiji.app/jre/jre/bin/server/jvm.dll
Could not open 'C:\Prog\Fiji.app/jre/jre/bin/server/jvm.dll'
'C:\Prog\Fiji.app/jre' does not exist

In both cases FIJI started with my 12.0.1 Java is your System Java.

I also tested to start FIJI with an empty win64 folder. The debug is different:

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\Prog\Fiji.app/java/win64/
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/server/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/server/jvm.dll'
            find_newest complete with result: ''
Detected ImageJ2
ImageJ.cfg:1: .
ImageJ.cfg:2: jre\bin\javaw.exe
set_legacy_jre_path:
    Using JRE from ImageJ.cfg: C:\Prog\Fiji.app/jre
ImageJ.cfg:3: -Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar ij.ImageJ
Found Java options in ImageJ.cfg: '-Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar'
get_jre_home:
    Setting jre to C:\Prog\Fiji.app/jre
    JAVA_HOME points to a JRE: 'C:\Prog\Fiji.app/jre'
initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\Prog\Fiji.app/java/win64/
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/server/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/server/jvm.dll'
            find_newest complete with result: ''
javaw -Dsun.java2d.dpiaware=true -Xmx12184m -Dpython.cachedir.skip=true -Dplugins.dir=C:\\Prog\\Fiji.app -Dimagej.splash=true -Djava.class.path=C:\\Prog\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\Prog\\Fiji.app -Dij.dir=C:\\Prog\\Fiji.app -Dfiji.dir=C:\\Prog\\Fiji.app -Dfiji.executable=C:\\Prog\\Fiji.app\\debug.exe -Dij.executable=C:\\Prog\\Fiji.app\\debug.exe -Djava.library.path=C:\\Prog\\Fiji.app/lib/win64;C:\\Prog\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
Using JAVA_HOME C:\Prog\Fiji.app/jre
Searching for Java library path
find_java_library_path:
    dir = C:\Prog\Fiji.app/jre
    search_for_java:
        dir = C:\Prog\Fiji.app/jre
        java_library_path = jre/bin/client/jvm.dll
        find_newest:
            searching 'C:\Prog\Fiji.app/jre' for 'jre/bin/client/jvm.dll'
            file not found: 'C:\Prog\Fiji.app/jre/jre/bin/client/jvm.dll'
        find_newest complete with result: ''
    search_for_java:
        dir = C:\Prog\Fiji.app/jre
        java_library_path = bin/client/jvm.dll
        find_newest:
            searching 'C:\Prog\Fiji.app/jre' for 'bin/client/jvm.dll'
            file not found: 'C:\Prog\Fiji.app/jre/bin/client/jvm.dll'
        find_newest complete with result: ''
    search_for_java:
        dir = C:\Prog\Fiji.app/jre
        java_library_path = jre/bin/server/jvm.dll
        find_newest:
            searching 'C:\Prog\Fiji.app/jre' for 'jre/bin/server/jvm.dll'
            file not found: 'C:\Prog\Fiji.app/jre/jre/bin/server/jvm.dll'
        find_newest complete with result: ''
    search_for_java:
        dir = C:\Prog\Fiji.app/jre
        java_library_path = bin/server/jvm.dll
        find_newest:
            searching 'C:\Prog\Fiji.app/jre' for 'bin/server/jvm.dll'
            file not found: 'C:\Prog\Fiji.app/jre/bin/server/jvm.dll'
        find_newest complete with result: ''
ERROR: No library path!
Warning: falling back to System JVM

Also here FIJI started with my 12.0.1 Java is your System Java.

In all cases the FIJI GUI looks like mentioned here.

1 Like

Oh crud I’m sorry. It looks like you also have a Fiji.app/jre directory, which I suspect contains an old jdk1.8.0_172 java. I assumed it was in Fiji.app/java before. Feel free to just delete the Fiji.app/java, or if you want to try the newer Java, move or rename your Fiji.app/jre directory.

But! Good news! I was finally able to reproduce, and fix, the problem locally.

@haesleinhuepf @phaub I just uploaded a new ImageJ-win64.exe to the Launcher-6-test update site. If you could do a Help > Update... and give it a try, that would be much appreciated.


Warning: horrifying delve into native code ahead. Reader discretion advised.

For anyone interested: the C system API is divided into “A” (ANSI) and “W” (Wide/Unicode) variants. In the launcher we were calling the non-specific LoadLibrary. For some reason this was fine on my copy of Win10 Home, but on Pro the old launcher appeared to use LoadLibraryA and the new launcher used LoadLibraryW. (possibly based on the dll being loaded? and perhaps the older jvm.dll is not compatible with wide chars?)

If I explicitly call LoadLibraryW I can locally reproduce the exact same failure to load the 1.8.0_172 jvm.dll. Explicitly calling LoadLibraryA, however, succeeds with both 1.8.0_172 and other, newer JDKs… so that is the fix I uploaded to test.

2 Likes

No. There is no such directory.
I only have Fiji.app\java

After updating the launcher the debug output from the ‘original’ Fiji (without the Azul JDK) is:

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\Prog\Fiji.app/java/win64/
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/client/jvm.dll'
                    file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/client/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'bin/client/jvm.dll'
                    file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'bin/client/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/server/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/server/jvm.dll'
                    found a candidate: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/server/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/server/jvm.dll'
            find_newest complete with result: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172'
            set_relative_java_home:
                relative_java_home -> java/win64/jdk1.8.0_172/
            set_library_path:
                library_path is now jre/bin/server/jvm.dll
            Default library path (relative): jre/bin/server/jvm.dll
Detected ImageJ2
ImageJ.cfg:1: .
ImageJ.cfg:2: jre\bin\javaw.exe
set_legacy_jre_path:
    Using JRE from ImageJ.cfg: C:\Prog\Fiji.app/jre
ImageJ.cfg:3: -Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar ij.ImageJ
Found Java options in ImageJ.cfg: '-Dsun.java2d.dpiaware=true -Xmx12184m -cp ij.jar'
get_jre_home:
    Setting jre to C:\Prog\Fiji.app/jre
    JAVA_HOME points to a JRE: 'C:\Prog\Fiji.app/jre'
javaw -Dsun.java2d.dpiaware=true -Xmx12184m -Dpython.cachedir.skip=true -Dplugins.dir=C:\\Prog\\Fiji.app -Dimagej.splash=true -Djava.class.path=C:\\Prog\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\Prog\\Fiji.app -Dij.dir=C:\\Prog\\Fiji.app -Dfiji.dir=C:\\Prog\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\Prog\\Fiji.app\\debug.exe -Dij.executable=C:\\Prog\\Fiji.app\\debug.exe -Djava.library.path=C:\\Prog\\Fiji.app/lib/win64;C:\\Prog\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/jre
Using JAVA_HOME C:\Prog\Fiji.app/jre
Opening Java library C:\Prog\Fiji.app/jre/jre/bin/server/jvm.dll
Could not open 'C:\Prog\Fiji.app/jre/jre/bin/server/jvm.dll'
'C:\Prog\Fiji.app/jre' does not exist

FIJI is starting with my 12.0.1 Java is your System Java.

1 Like

@phaub can you remove this entry from your ImageJ.cfg and try again?

Sorry I missed that in your first report - I didn’t realize there were so many ways to point to Java! Fiji wasn’t actually trying to launch with either the original Java or the Azul Java, because this configuration was overriding the automated search process. Then since this path doesn’t actually exist, Fiji was always falling back to the 12.0.1 system Java.

After updating the launcher and testing with the ‘original’ Fiji (without the Azul JDK)
and the following cfg file

.
-cp ij.jar ij.ImageJ

I get Log output in FIJI Console window

[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 18 ConsoleArgument plugins.
[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 7 IOPlugin plugins.
[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 3 LocationResolver plugins.
[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 23 OptionsPlugin plugins.
[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 144 Converter plugins.
[Tue Nov 03 15:11:34 CET 2020] [WARNING] [] Couldd not load legacy launcher config file C:\Prog\Fiji.app\ImageJ.cfg
[Tue Nov 03 15:11:34 CET 2020] [DEBUG] [] Found 5 CodeRunner plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 1 ScriptHeader plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 10 SearchActionFactory plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 2 TextFormat plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 26 Tool plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 4 DragAndDropHandler plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 5 LanguageSupportPlugin plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 2 BatchInputProvider plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 16 Codec plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 3 PlaneConverter plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 25 Translator plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 17 ThresholdMethod plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 2 AutoscaleMethod plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] Found 13 CalculatorOp plugins.
[Tue Nov 03 15:11:35 CET 2020] [DEBUG] [] publish(
	context = org.scijava.Context@5f7f2382
	consumed = false
	ui = legacy,null,null), called from non-EDT Thread:null

and Console output in FIJI Console window

[DEBUG] Found 18 ConsoleArgument plugins.
[DEBUG] Found 7 IOPlugin plugins.
[DEBUG] Found 3 LocationResolver plugins.
[DEBUG] Found 23 OptionsPlugin plugins.
[DEBUG] Found 144 Converter plugins.
[WARNING] Couldd not load legacy launcher config file C:\Prog\Fiji.app\ImageJ.cfg
[DEBUG] Found 5 CodeRunner plugins.
[DEBUG] Found 1 ScriptHeader plugins.
[DEBUG] Found 10 SearchActionFactory plugins.
[DEBUG] Found 2 TextFormat plugins.
[DEBUG] Found 26 Tool plugins.
[DEBUG] Found 4 DragAndDropHandler plugins.
[DEBUG] Found 5 LanguageSupportPlugin plugins.
[DEBUG] Found 2 BatchInputProvider plugins.
[DEBUG] Found 16 Codec plugins.
[DEBUG] Found 3 PlaneConverter plugins.
[DEBUG] Found 25 Translator plugins.
[DEBUG] Found 17 ThresholdMethod plugins.
[DEBUG] Found 2 AutoscaleMethod plugins.
[DEBUG] Found 13 CalculatorOp plugins.
[DEBUG] publish(
	context = org.scijava.Context@5f7f2382
	consumed = false
	ui = legacy,null,null), called from non-EDT Thread:null

and Debug output in Windows console window

initialize_java_home_and_library_path:
    find_java_library_path:
        dir = C:\Prog\Fiji.app/java/win64/
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/client/jvm.dll'
                    file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/client/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = bin/client/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'bin/client/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/bin/client/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'bin/client/jvm.dll'
                    file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/bin/client/jvm.dll'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'bin/client/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/bin/client/jvm.dll'
            find_newest complete with result: ''
        search_for_java:
            dir = C:\Prog\Fiji.app/java/win64/
            java_library_path = jre/bin/server/jvm.dll
            find_newest:
                searching 'C:\Prog\Fiji.app/java/win64/' for 'jre/bin/server/jvm.dll'
                file not found: 'C:\Prog\Fiji.app/java/win64/jre/bin/server/jvm.dll'
                find_newest:
                    searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172' for 'jre/bin/server/jvm.dll'
                    found a candidate: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172'
                    find_newest:
                        searching 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre' for 'jre/bin/server/jvm.dll'
                        file not found: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/jre/jre/bin/server/jvm.dll'
            find_newest complete with result: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172'
            set_relative_java_home:
                relative_java_home -> java/win64/jdk1.8.0_172/
            set_library_path:
                library_path is now jre/bin/server/jvm.dll
            Default library path (relative): jre/bin/server/jvm.dll
Detected ImageJ2
ImageJ.cfg:1: .
ImageJ.cfg:2: -cp ij.jar ij.ImageJ
ImageJ.cfg:3:
Found Java options in ImageJ.cfg: ''
get_jre_home:
    get_java_home:
        Trying to use relative_java_home: C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
        is_java_home:
            directory = C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
            is_jre_home:
                directory is C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
                Ignoring JAVA_HOME (does not exist): C:\Prog\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/client/jvm.dll
                Ignoring JAVA_HOME (does not exist): C:\Prog\Fiji.app/java/win64/jdk1.8.0_172//bin/client/jvm.dll
                Identified JAVA_HOME: C:\Prog\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
        Returning C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
    Setting jre to C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
    JAVA_HOME appears to be a JRE: 'C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/'
Available RAM: 16245MB, using 3/4 of that: 12184MB
javaw -Dpython.cachedir.skip=true -Dplugins.dir=C:\\Prog\\Fiji.app -Xmx12184m -Dimagej.splash=true -Djava.class.path=C:\\Prog\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\Prog\\Fiji.app -Dij.dir=C:\\Prog\\Fiji.app -Dfiji.dir=C:\\Prog\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\Prog\\Fiji.app\\debug.exe -Dij.executable=C:\\Prog\\Fiji.app\\debug.exe -Djava.library.path=C:\\Prog\\Fiji.app/lib/win64;C:\\Prog\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
Using JAVA_HOME C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
Opening Java library C:\Prog\Fiji.app/java/win64/jdk1.8.0_172//jre/bin/server/jvm.dll
get_jre_home:
    get_jre_home: Returning C:\Prog\Fiji.app/java/win64/jdk1.8.0_172/
ij1.plugin.dirs: null
$HOME/.plugins: C:\Users\USER701\.plugins does not exist
Launching main class net.imagej.Main with parameters []
Class loader = sun.misc.Launcher$AppClassLoader@c387f44
Checking class loader: sun.misc.Launcher$AppClassLoader@c387f44
Checking URL: file:/C:/Prog/Fiji.app/jars/imagej-launcher-6.0.0.jar
Not Eclipse because first entry is: file:/C:/Prog/Fiji.app/jars/imagej-launcher-6.0.0.jar
[DEBUG] Creating service: org.scijava.event.DefaultEventService
[DEBUG] Creating service: org.scijava.log.StderrLogService

...
ph: 2457 Lines with [DEBUG]  xxxxxxx  => Removed
...

[DEBUG] Ignoring unsupported script: Fiji_Archipelago-2.0.1.jar
[DEBUG] Found 73 scripts
[DEBUG] publish(
        context = org.scijava.Context@5f7f2382
        consumed = false
        items[0] = menu='Process > Math > AND...', priority=0.0, enabled=true, pluginType=Command
        items[1] = label='About ImageJ...', menu='Help > About ImageJ...', iconPath='/icons/commands/information.png', priority=0.0, enabled=true, pluginType=Command
        items[2] = menu='Process > Math > Abs...', priority=0.0, enabled=true, pluginType=Command
        items[3] = menu='Process > Noise > Noise Reduction > Adaptive Median', priority=0.0, enabled=true, pluginType=Command
        items[4] = menu='Image > Axes > Add Axis...', priority=0.0, enabled=true, pluginType=Command
        items[5] = menu='Image > Data > Add Data...', priority=0.0, enabled=true, pluginType=Command
        items[6] = menu='Image > Overlay > Add Image', iconPath='/icons/commands/bricks.png', priority=0.0, enabled=true, pluginType=Command
        items[7] = menu='Process > Noise > Add Noise...', priority=0.0, enabled=true, pluginType=Command
        items[8] = menu='Process > Noise > Add Specified Noise...', priority=0.0, enabled=true, pluginType=Command
        items[9] = menu='Process > Math > Add...', iconPath='/icons/commands/sum.png', priority=0.0, enabled=true, pluginType=Command
        items[10] = menu='Process > Noise > Noise Reduction > Alpha Trimmed Mean', priority=0.0, enabled=true, pluginType=Command
        items[11] = menu='Image > Animation > Animation Options...', priority=0.0, enabled=true, pluginType=Command
        items[12] = menu='Edit > Options > Appearance...', priority=0.0, enabled=true, pluginType=Command
        items[13] = menu='Edit > Options > Arrow Tool...', priority=0.0, enabled=true, pluginType=Command
        items[14] = menu='Image > Adjust > Auto-Contrast', priority=0.0, enabled=true, pluginType=Command
        items[15] = menu='Image > Axes > Axis Position Backward', priority=0.0, enabled=true, pluginType=Command
        items[16] = menu='Image > Axes > Axis Position Forward', priority=0.0, enabled=true, pluginType=Command
        items[17] = menu='Plugins > Utilities > Benchmark', iconPath='/icons/commands/bricks.png', priority=0.0, enabled=true, pluginType=Command
        items[18] = menu='Image > Transform > Bin...', priority=0.0, enabled=true, pluginType=Command
        items[19] = menu='Process > Binary > Binarize...', priority=0.0, enabled=true, pluginType=Command
        items[20] = menu='Image > Adjust > Brightness/Contrast...', iconPath='/icons/commands/contrast.png', priority=0.0, enabled=true, pluginType=Command
        items[21] = menu='Plugins > Sandbox > Button Demo', priority=0.0, enabled=true, pluginType=Command
        items[22] = menu='Plugins > Utilities > Capture Image', priority=0.0, enabled=true, pluginType=Command
        items[23] = menu='Plugins > Utilities > Capture Screen', priority=0.0, enabled=true, pluginType=Command
        items[24] = menu='Image > Type > Change...', priority=0.0, enabled=true, pluginType=Command
        items[25] = menu='Image > Color > Channels Tool...', iconPath='/icons/commands/color_wheel.png', priority=0.0, enabled=true, pluginType=Command
        items[26] = menu='Edit > Options > Channels...', priority=0.0, enabled=true, pluginType=Command
        items[27] = label='Clear Recent', menu='File > Open Recent > Clear List', priority=0.0, enabled=true, pluginType=Command
        items[28] = menu='Process > Binary > Close', priority=0.0, enabled=true, pluginType=Command
        items[29] = menu='File > Close', priority=0.0, enabled=true, pluginType=Command
        items[30] = menu='File > Close All', priority=0.0, enabled=true, pluginType=Command
        items[31] = menu='Edit > Options > Compatibility...', priority=0.0, enabled=true, pluginType=Command
        items[32] = menu='Edit > Options > Compiler...', priority=0.0, enabled=true, pluginType=Command
        items[33] = menu='Process > Noise > Noise Reduction > Contraharmonic Mean', priority=0.0, enabled=true, pluginType=Command
        items[34] = menu='Edit > Options > Conversions...', priority=0.0, enabled=true, 

...
ph: 1122 lines  => Removed
...

enabled=true, pluginType=LegacyCommand, arg='sqr', className='ij.plugin.filter.ImageMath'
        items[976] = menu='Analyze > Sholl > Deprecated > Metrics & Options...', iconPath='/icons/legacy.png', priority=0.0, enabled=true, pluginType=LegacyCommand, className='sholl.Options'
        items[977] = menu='Plugins > Cluster > Test Cluster', iconPath='/icons/legacy.png', priority=0.0, enabled=true, pluginType=LegacyCommand, className='edu.utexas.clm.archipelago.example.Test_Cluster'
        items[978] = menu='File > Open Samples > T1 Head (16-bits)', iconPath='/icons/legacy.png', priority=0.0, enabled=true, pluginType=LegacyCommand, arg='t1-head.zip', className='ij.plugin.URLOpener'
        items[979] = menu='Image > Color > Split Channels', iconPath='/icons/legacy.png', priority=0.0, enabled=true, pluginType=LegacyCommand, className='ij.plugin.ChannelSplitter',null,null), called from non-EDT Thread:null
[DEBUG] Created service 'net.imagej.legacy.LegacyService' in 3774 ms
[DEBUG] Creating service: fiji.plugin.trackmate.TrackMateService
[DEBUG] Created service 'fiji.plugin.trackmate.TrackMateService' in 0 ms
[DEBUG] Creating service: net.haesleinhuepf.clij.DefaultCLIJService
[DEBUG] Created service 'net.haesleinhuepf.clij.DefaultCLIJService' in 0 ms
[DEBUG] Creating service: net.haesleinhuepf.clij.converters.CLIJConverterService
[DEBUG] Created service 'net.haesleinhuepf.clij.converters.CLIJConverterService' in 21 ms
[DEBUG] Creating service: net.haesleinhuepf.clij.macro.CLIJMacroPluginService
[DEBUG] Created service 'net.haesleinhuepf.clij.macro.CLIJMacroPluginService' in 2 ms
[DEBUG] Creating service: net.imagej.DefaultImgPlusService
[DEBUG] Created service 'net.imagej.DefaultImgPlusService' in 0 ms
[DEBUG] Creating service: net.imagej.animation.DefaultAnimationService
[DEBUG] Created service 'net.imagej.animation.DefaultAnimationService' in 2 ms
[DEBUG] Creating service: net.imagej.autoscale.DefaultAutoscaleService
[DEBUG] Created service 'net.imagej.autoscale.DefaultAutoscaleService' in 0 ms
[DEBUG] Creating service: net.imagej.display.DefaultImageDisplayService
[DEBUG] Created service 'net.imagej.display.DefaultImageDisplayService' in 0 ms
[DEBUG] Creating service: net.imagej.display.DefaultWindowService
[DEBUG] Created service 'net.imagej.display.DefaultWindowService' in 0 ms
[DEBUG] Creating service: net.imagej.display.DefaultZoomService
[DEBUG] Created service 'net.imagej.display.DefaultZoomService' in 0 ms
[DEBUG] Creating service: net.imagej.legacy.plugin.MacroExtensionAutoCompletionService
[DEBUG] Created service 'net.imagej.legacy.plugin.MacroExtensionAutoCompletionService' in 9 ms
[DEBUG] Creating service: net.imagej.measure.DefaultMeasurementService
[DEBUG] Created service 'net.imagej.measure.DefaultMeasurementService' in 2 ms
[DEBUG] Creating service: net.imagej.measure.DefaultStatisticsService
[DEBUG] Created service 'net.imagej.measure.DefaultStatisticsService' in 0 ms
[DEBUG] Creating service: net.imagej.notebook.DefaultNotebookService
[DEBUG] Creating service: net.imagej.ops.DefaultOpService
[DEBUG] Creating service: net.imagej.ops.DefaultOpMatchingService
[DEBUG] Created service 'net.imagej.ops.DefaultOpMatchingService' in 10 ms
[DEBUG] Creating service: net.imagej.ops.DefaultNamespaceService
[DEBUG] Created service 'net.imagej.ops.DefaultNamespaceService' in 0 ms
[DEBUG] Created service 'net.imagej.ops.DefaultOpService' in 143 ms
[DEBUG] Created service 'net.imagej.notebook.DefaultNotebookService' in 153 ms
[DEBUG] Creating service: net.imagej.operator.DefaultCalculatorService
[DEBUG] Created service 'net.imagej.operator.DefaultCalculatorService' in 0 ms
[DEBUG] Creating service: net.imagej.roi.DefaultROIService
[DEBUG] Created service 'net.imagej.roi.DefaultROIService' in 20 ms
[DEBUG] Creating service: net.imagej.sampler.DefaultSamplerService
[DEBUG] Created service 'net.imagej.sampler.DefaultSamplerService' in 8 ms
[DEBUG] Creating service: net.imagej.table.DefaultTableService
[DEBUG] Created service 'net.imagej.table.DefaultTableService' in 0 ms
[DEBUG] Creating service: net.imagej.ui.DefaultImageJUIService
[DEBUG] Created service 'net.imagej.ui.DefaultImageJUIService' in 0 ms
[DEBUG] Creating service: net.imagej.ui.awt.AWTScreenCaptureService
[DEBUG] Created service 'net.imagej.ui.awt.AWTScreenCaptureService' in 0 ms
[DEBUG] Creating service: net.imagej.ui.swing.ops.DefaultOpFinderService
[DEBUG] Created service 'net.imagej.ui.swing.ops.DefaultOpFinderService' in 0 ms
[DEBUG] Creating service: net.imagej.ui.swing.overlay.JHotDrawService
[DEBUG] Created service 'net.imagej.ui.swing.overlay.JHotDrawService' in 0 ms
[DEBUG] Creating service: net.imagej.units.DefaultUnitService
[DEBUG] Created service 'net.imagej.units.DefaultUnitService' in 21 ms
[DEBUG] Creating service: net.imagej.updater.DefaultUpdateService
[DEBUG] Created service 'net.imagej.updater.DefaultUpdateService' in 10 ms
[DEBUG] Creating service: net.imagej.updater.DefaultUploaderService
[DEBUG] Created service 'net.imagej.updater.DefaultUploaderService' in 0 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.ImageUtilService
[DEBUG] Created service 'sc.fiji.filamentdetector.ImageUtilService' in 0 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.analyzer.AnalyzerService
[DEBUG] Created service 'sc.fiji.filamentdetector.analyzer.AnalyzerService' in 10 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.detection.FilamentDetectorService
[DEBUG] Created service 'sc.fiji.filamentdetector.detection.FilamentDetectorService' in 0 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.overlay.DefaultColorService
[DEBUG] Created service 'sc.fiji.filamentdetector.overlay.DefaultColorService' in 20 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.overlay.DefaultFilamentOverlayService
[DEBUG] Created service 'sc.fiji.filamentdetector.overlay.DefaultFilamentOverlayService' in 10 ms
[DEBUG] Creating service: sc.fiji.filamentdetector.tracking.FilamentTrackerService
[DEBUG] Created service 'sc.fiji.filamentdetector.tracking.FilamentTrackerService' in 0 ms
[DEBUG] Creating service: net.imagej.display.DummyScreenCaptureService
[DEBUG] Created service 'net.imagej.display.DummyScreenCaptureService' in 0 ms
[DEBUG] Creating service: net.imagej.render.DummyRenderingService
[DEBUG] Created service 'net.imagej.render.DummyRenderingService' in 0 ms
[DEBUG] publish(
        context = org.scijava.Context@5f7f2382
        consumed = false,null,null), called from non-EDT Thread:null
[DEBUG] Received command line arguments:
[DEBUG] Discovered user interface: net.imagej.legacy.ui.LegacyUI
[DEBUG] Discovered user interface: org.scijava.ui.swing.sdi.SwingSDIUI
[DEBUG] Discovered user interface: org.scijava.ui.awt.AWTUI
[DEBUG] Discovered user interface: org.scijava.ui.swing.mdi.SwingMdiUI
[DEBUG] Discovered user interface: org.scijava.ui.headless.HeadlessUI
[DEBUG] Launching user interface: net.imagej.legacy.ui.LegacyUI
[DEBUG] Found 18 ConsoleArgument plugins.
[DEBUG] Found 7 IOPlugin plugins.
[DEBUG] Found 3 LocationResolver plugins.
[DEBUG] Found 23 OptionsPlugin plugins.
[DEBUG] Found 144 Converter plugins.
[WARNING] Couldd not load legacy launcher config file C:\Prog\Fiji.app\ImageJ.cfg
[DEBUG] Found 5 CodeRunner plugins.
[DEBUG] Found 1 ScriptHeader plugins.
[DEBUG] Found 10 SearchActionFactory plugins.
[DEBUG] Found 2 TextFormat plugins.
[DEBUG] Found 26 Tool plugins.
[DEBUG] Found 4 DragAndDropHandler plugins.
[DEBUG] Found 5 LanguageSupportPlugin plugins.
[DEBUG] Found 2 BatchInputProvider plugins.
[DEBUG] Found 16 Codec plugins.
[DEBUG] Found 3 PlaneConverter plugins.
[DEBUG] Found 25 Translator plugins.
[DEBUG] Found 17 ThresholdMethod plugins.
[DEBUG] Found 2 AutoscaleMethod plugins.
[DEBUG] Found 13 CalculatorOp plugins.
[DEBUG] publish(
        context = org.scijava.Context@5f7f2382
        consumed = false
        ui = legacy,null,null), called from non-EDT Thread:null

FIJI is running.
GUI looks better without my special cfg settings (-Dsun.java2d.dpiaware=true).

1 Like

Hi @hinerm,

one of our Windows 10 systems also doesn’t start after an update today.

Running ImageJ-win64.exe --debug --console gives:

C:\Utilities\Fiji.app>
--ImageJ output attached--get_jre_home:
    Setting jre to C:\UTILIT~1\Fiji.app/jre
    JAVA_HOME points to a JRE: 'C:\UTILIT~1\Fiji.app/jre'
javaw -Xmx198163m -Dpython.cachedir.skip=true -Dplugins.dir=C:\\UTILIT~1\\Fiji.app -Dimagej.splash=true -Djava.class.path=C:\\UTILIT~1\\Fiji.app/jars/imagej-launcher-6.0.0.jar -Dimagej.dir=C:\\UTILIT~1\\Fiji.app -Dij.dir=C:\\UTILIT~1\\Fiji.app -Dfiji.dir=C:\\UTILIT~1\\Fiji.app -Dfiji.defaultLibPath=jre/bin/server/jvm.dll -Dfiji.executable=C:\\Utilities\\Fiji.app\\ImageJ-win64.exe -Dij.executable=C:\\Utilities\\Fiji.app\\ImageJ-win64.exe -Djava.library.path=C:\\UTILIT~1\\Fiji.app/lib/win64;C:\\UTILIT~1\\Fiji.app/mm/win64 -Dscijava.context.strict=false -Dpython.console.encoding=UTF-8 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -ijjarpath jars -ijjarpath plugins net.imagej.Main
get_jre_home:
    get_jre_home: Returning C:\UTILIT~1\Fiji.app/jre
get_jre_home:
    get_jre_home: Returning C:\UTILIT~1\Fiji.app/jre
Using JAVA_HOME C:\UTILIT~1\Fiji.app/jre
Opening Java library C:\UTILIT~1\Fiji.app/jre/jre/bin/server/jvm.dll
Could not open 'C:\UTILIT~1\Fiji.app/jre/jre/bin/server/jvm.dll'
'C:\UTILIT~1\Fiji.app/jre' does not exist
Could not find javaw.exe in PATH

The Java is the bundled one in Fiji.app\java\win64\jdk1.8.0_172\jre, so I don’t have any idea why the launcher is looking in Fiji.app/jre.

Launching with ImageJ-win64.old.exe works.

@imagejan yes, there are too many ways for the launcher to find Java.

In this case I suspect there an ImageJ.cfg present with the line C:\UTILIT~1\Fiji.app/jre. Delete that (and also any line with java[w].exe) and it should recover.

Fixing the launcher to play nice with ImageJ.cfg is a top priority.

1 Like