Можно писать на любой. Рекомендуется использовать LTS (Long Term Support) версии, коими, на сегодняшний день являются три: 8, 11, 17. Если вы делаете разработку с нуля, то имеет смысл использовать сразу 17, потому что Premier Support для JDK 8 заканчивается в марте 2022 года, для JDK 11 в сентябре 2023, а для 17 - в сентябре 2026 года.
Все JDK одинаково хорошо поддерживают программирование для Linux. Бонусом от использования JDK 17 будут являться некоторые приятные синтаксические улучшения, улучшающие производительность, например:
var result = switch (myService.state) {
case null -> 1;
case RUNNING -> 2;
case STOPPED -> 3;
default -> -1;
}
вместо
int result;
if (myService.state == null) {
result = 1;
} else {
switch (myService.state) {
case RUNNING:
result = 2;
break;
case STOPPED:
result = 3;
break;
default ->
result = -1;
break;
}
}
Кроме синтаксических подобных конструкций, JDK 17 лучше выделяет память для области metaspace и лучше отдает память операционной системе если она не используется.