PiCrate on RaspbianOS and ManjaroARM

Contrary to my expectations OpenJDK17 is available for arm32 (from adoptium.net). I installed it in the /opt folder on my RaspberryPI4 (RaspbianOS), and created symbolic links using the debian update-alternatives tool:-

sudo update-alternatives --install /usr/bin/java java /opt/jdk-17+35/bin/java 100

And set it to be default java:-

sudo update-alternatives --config java

However when I tried to run more than a basic PiCrate sketch it hung. Now it turns out there was an issue with the clever clogs at Raspbian setting JAVA_HOME. For an immediate fix I just set JAVA_HOME on the command line.

export JAVA_HOME=/opt/jdk-17+35

Then sketches ran as anticipated, you will not find this issue with ManjaroARM since jdk-17 is installed by default.

sudo pacman -S jre-openjdk

Currently PiCrate works on jdk11 and jdk17, but I will be tempted to upgrade to jdk17 in the relatively near future. Since jdk14 there have been interesting developments in Pattern match instanceof and Switch expression that can be used by PiCrate. I investigated JAVA_HOME issue a bit further and it turns out it gets set dynamically (see /etc/profile.d/jdk_home.sh) so its nothing worry about in practice as it gets updated when you re-login (it might be an issue for vanilla processing with its built in jdk?).