I've been using jdk8 to build my java code for ages, so I can be sure it'll run on an older jdk. I routinely test on newer versions, all the way up to jdk25 - that's one of the ways I test the newer openjdk builds. But it's about time to modernize.
Currently at jdk11. That required one fix to help type inference out (jdk8 got it right, jdk11 refused it).
I'm not pushing the default any further yet. But jdk17 looks clean, while jdk21 triggers a lot of new lint warnings I should fix anyway.