With the recent release of UniFi’s 5.4.16 controller software, the Java version has been updated to version 8. On the Raspberry Pi controller, this causes the controller to fail to start after the upgrade. After some digging on the forums, it seems to be a common problem, but easily resolved.
Upgrade:
To upgrade, it is a simple update command if you followed my previous post on Building a Unifi Wireless Controller with a Raspberry Pi 3. The upgrade is simply as follows.
sudo apt-get update && sudo apt-get upgrade -y
Fix the issue:
To resolve the issue with java, you will need to first make sure you have Oracle Java 8 installed.
sudo apt-get install oracle-java8-jdk
Then make sure the new version is set as default.
sudo update-alternatives --config java
Select Oracle Java 8.
Restart the service.
sudo systemctl restart unifi
This is a very simple fix, but hopefully this saves some frustration on configuring your Raspberry Pi 3 UniFi controller.
This works on Beagle Bone Black if you do the following to install Java 8:
Attempt install:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install oracle-java8-installer
The install will fail with a 404 error.
Check in /var/cache/oracle-jdk8-installer/ to see what version it’s trying to download (in my case this was jdk-8u111-linux-arm32-vfp-hflt.tar.gz).
Go to Oracle’s website and manually download that specific version (I had to register).
Copy the downloaded file to /var/cache/oracle-jdk8-installer/
Attempt install again:
sudo apt-get install oracle-java8-installer
sudo apt install oracle-java8-set-default
Choose java 8 as the default:
sudo update-alternatives –config java
Restart UniFi service:
sudo systemctl restart unifi