Ubiquiti Unifi Controller 4.11.47 and Java Runtime nightmare

Wow such a small change, such a big nightmare. The Unifi Controller is dependent on the right Java runtime. Oracle has been constantly tightening their licensing, making it harder and harder to just run Java. So in the last few years, Apple stopped shipping the JRE.

So Ubiquiti took up the slack and included the Java Runtime Environment in their Unifi.app. However in 2019, Oracle tightened up licensing up even more and Uibiquiti can’t ship the JRE anymore. Now it looks like you again have to manually install the JRE from the Oracle sight and click the license button.

The usual workaround is to install the JDK and there is an open JDK available via brew cask install adepthjdk8 which is the version 1.8 that you need. The current default is brew cask install java which installs version 13.

However, it appears that the Java Application Launcher in Ubiquiti can’t find these SDKs. You get this message, “no Java Runtimes found”. If you burrow into toto the Unifi application at /Applications/UniFi.app/Contents/MacOS/ and run the JavaAppLauncher, you can see it fail to find the JRE and look for JDKs, but it doesn’t find them.

You can by the way install brew install jenv which manages multiple environments and then add some magic to the .bash_profile to install and dynamically change the version of java you are using. But of course this magic also doesn’t seem to work as the Java App Launcher doesn’t seem to run .bash_profile. It might have to be in .profile which runs at boot time to work properly.

I’m Rich & Co.

Welcome to Tongfamily, our cozy corner of the internet dedicated to all things technology and interesting. Here, we invite you to join us on a journey of tips, tricks, and traps. Let’s get geeky!

Let’s connect