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?).