Trying to run the Fiji

Everytime I try and run the Fiji, I get a prompt to download and install the Java. It has been done but still, I get the prompt

Do not stress… it’s normal. All those updates are meant to keep your ImageJ/Fiji installation up-to-date with all components : plugins, core components, etc. It is usually the best practice to update and restart - but you can opt out if you prefer.

You can read more on this subject here:

I am guessing @Reynoldsg is using a Mac and suffering from the related launcher issues?

@Reynoldsg If so, did you install Java 8 from java.com? If not, which platform are you running, and exactly what steps did you follow, and exactly what error message do you see?

This is my issue; I updated my system to 10.11 (El Capitan) and now Fiji won’t start. I get notified that I have to install the Java Runtime Environment, but I’ve done that, and am running the latest JRE.

Can anyone give me a work-around, or do I have to roll-back to 10.10?

Thanks

I had the same issue.
I installed the Java version 2015-001 found at: https://support.apple.com/kb/DL1572?locale=en_US
This worked for me.

Thanks,

Greg

It should no longer be required to install Java 6—the ImageJ launcher is supposed to notice that you installed Java 8 and use that automatically.

So… perhaps this is an issue specific to El Capitan? Or! Perhaps you have not updated your Fiji in awhile? If not, then the upgrade to El Capitan would have deleted your Java 6 installation, and resulted in that error message.

@bryanc @Reynoldsg Could either or both of you please test whether a freshly downloaded Fiji from http://imagej.net/Downloads suffers from this issue, on an El Capitan machine without Java 6 installed?

Okay, so I downloaded a fresh install of Fiji, and it gave me the same error. So now I’ve downloaded and installed the Java 6 legacy install from here: https://support.apple.com/kb/DL1572?locale=en_US (thanks Greg), and Fiji now runs.

I’m going to try updating the ImageJ within Fiji to 1.50c (the current version is 1.50b), and if that still works, I’ll try updating Java again, and see if that breaks it.

I just went to the Java download page and ran the ‘detect java’ widget, which informed me that I’m running the latest Java (version 8 update 60). But when I check the Java version in Fiji>Help>About ImageJ it tells me I’m running Java 1.6.0_65 (64-bit). I’m not up on my Java versions, but isn’t that version 6?

(BTW, thanks very much for the help; it’s great to have a forum like this to interact with other Fiji users/developers!)

1 Like

Yes. The ImageJ launcher is supposed to prefer Java 8 over Java 6. In fact, as things stand, you actually have to uninstall Java 8 if you want to run ImageJ using Java 6. (Or jump through some hoops on the command line; see this FAQ entry.)

The fact that your ImageJ is running with Java 6 means that the ImageJ launcher did not find your installation of Java 8 for some reason.

Could you please download this script and run it in Terminal? It will report on all the Java installations it finds. Perhaps El Capitan uses a different installation folder for Java 8 now.

You can also try launching ImageJ from Terminal to see if it reports anything informative.

Here’s the output of that useful little script (thanks):

=== Which versions of Java are installed? ===

Oct 7 13:07:17 2015 /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
++ /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -version
java version "1.6.0_65"
Java™ SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot™ 64-Bit Server VM (build 20.65-b04-468, mixed mode)
54M /Library/Java/JavaVirtualMachines/1.6.0.jdk

=== Where are the libjvms? ===

++ find /Library/Java/JavaVirtualMachines/1.6.0.jdk -name ‘libjvm
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjvm.dylib
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjvmlinkage.dylib

=== Which version of Java are my browsers using? ===

++ ‘/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java’ -version
java version "1.8.0_60"
Java™ SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot™ 64-Bit Server VM (build 25.60-b23, mixed mode)
171M /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

=== Where is the Java framework stuff? ===

++ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 7 Oct 13:07 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 7 Oct 13:07 A
lrwxr-xr-x 1 root wheel 1 7 Oct 13:07 Current -> A
lrwxr-xr-x 1 root wheel 52 7 Oct 13:07 CurrentJDK -> /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

=== Which version is the Current JRE framework? ===

++ /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version
java version "1.6.0_65"
Java™ SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot™ 64-Bit Server VM (build 20.65-b04-468, mixed mode)

=== Which version is the Current JDK framework? ===

++ /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java -version
java version "1.6.0_65"
Java™ SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot™ 64-Bit Server VM (build 20.65-b04-468, mixed mode)

=== Which java executables are in my path? ===

++ which java javac
/usr/bin/java
/usr/bin/javac

=== And where do those symlinks go? ===

++ ls -l /usr/bin/java /usr/bin/javac /usr/bin/javadoc /usr/bin/javah /usr/bin/javap /usr/bin/javaws
lrwxr-xr-x 1 root wheel 74 7 Oct 13:07 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x 1 root wheel 75 7 Oct 13:07 /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
lrwxr-xr-x 1 root wheel 77 7 Oct 13:07 /usr/bin/javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
lrwxr-xr-x 1 root wheel 75 7 Oct 13:07 /usr/bin/javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
lrwxr-xr-x 1 root wheel 75 7 Oct 13:07 /usr/bin/javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
lrwxr-xr-x 1 root wheel 76 7 Oct 13:07 /usr/bin/javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws

=== Tell me more about my Javas! ===

++ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.6.0_65-b14-468, x86_64: “Java SE 6” /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-468, i386: “Java SE 6” /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

So my read of that is that the version 8 browser plugin is installed, but the version 6 JVM is being used by local processes.

Do you think re-installing version 8 break Fiji again?

Very unlikely to break things, so feel free to play around. If you want to get Fiji working with Java 8, you could try installing the Java SE 8 (either the JRE or JDK) and see how that goes.

If you don’t really care about versions of Java, then sticking with Java 6 is certainly OK. Just be aware that when OS X 10.12 is released, it will delete your Java 6 again when you upgrade. :tada: And OS X 10.13 will no longer support Java 6.

Ultimately, it would be good to get to the bottom of why the standard install of Java 8 from java.com did not do the trick for you.

I ran the Java SE 8 installer again, and the good news is that it didn’t break Fiji. However, ImageJ is still running under the Java 6 (1.6.0_65) virtual machine.

There must be something I can configure to point ImageJ to the correct JVM at start up.

Which one?

The one from java.com doesn’t seem to be working for you, for whatever reason. Maybe there is a bug in the ImageJ launcher. If you haven’t tried installing the Java SE JDK from Oracle’s site, give that a shot—it is tested and working on quite a few Macs.

I downloaded it from Oracle, and it seems to be working fine. It’s just that ImageJ isn’t using it. I think the problem is in the configuration of the ImageJ launcher.

A possibly related bug is that clicking the Fiji icon in my Dock no longer bounces and gains a little dot when I start Fiji; now a second instance of Fiji appears in my dock, and clicking the one that is ‘permanently’ in the dock again will start another new instance, rather than bringing the running application into the foreground. Finally, if I right-click on one of the running instances of Fiji, and select “keep in dock”, when I quit that instance it does not leave a Fiji icon in the dock, but a terminal executable icon. And when I click that terminal executable, it doesn’t restart Fiji, it starts a Java (version 6) session, which promptly closes because it had no arguments.

I therefore suspect the ImageJ/Fiji launcher is misconfigured, but I don’t know enough about how it works to guess how to fix it.

This behavior happens even if you download a fresh Fiji from http://imagej.net/Downloads?

Yep.

And I’ve discovered another bug/regression - when I drop an Lei file (we’re using a Leica confocal, and each experiment generates a file with all the metadata for each of the stacks; this file has a .lei extension) onto the Fiji icon in the doc it does nothing (this used to start Fiji and open the file). Furthermore, when I start Fiji and open the .lei file it it automatically opens the first stack in the series (it should open a dialogue in which the user selects which stack(s) in the folder to open). Finally, it looses all the metadata (e.g. stacks open with dimensions in pixels, rather than µm).

So it seems El Capitan breaks Fiji quite badly.

I completely nuked my Fiji installation, and also my Java install, and re-installed both from freshly downloaded .dmgs. All the problems persist. I’m quite frustrated, and unsure how to proceed.

More information:

I installed Fiji on a colleagues’ computer running El Capitan just now and it worked perfectly. I checked the Java version on his system and he had version 7 installed. Out of curiosity, I got him to update Java to version 8. That killed Fiji (i.e. it generates the error message about needing to install a JRE).

So it seems that both Java 6 and Java 8 are broken under El Capitan. You need Java 7. I’m going to download that now and see if I can get it working on my main system.

Have you tried launching ImageJ from the Terminal in debug mode? It might give more information about what is going wrong. Try also the --java-home option, pointing at your various known installations of Java 7 and/or 8, and see what the launcher says.

Partial progress…

I couldn’t find anywhere I could download Java 7 from, but more googling led me to this:

Based on that, I installed the JDK and now have Fiji running on Java 8 (1.8.0_60). Unfortunately, this has not fixed the problems with Fiji failing to correctly parse an lei file (still not getting scale data, and I’m unable to see any of the stacks in the experiment… it immediately opens the first stack and does not open the dialogue to allow the user to choose a stack).

Great! Would you please add information to the ImageJ FAQ about El Capitan, and the extra step necessary to make it work?

Indeed, I’m sure that is a separate issue. Please continue that discussion on the other thread I created about it.