Да, нужно! Как минимум нужно общее представление. Так как любая программа выполняется в окружении операционной системы.
Взять серверную часть. У вас не просто запускается tomcat/jboss/jetty/что-то-там-еще. У вас скорее всего стоит база данных, прокси-сервер. Есть мониторинг, оркестрация, сети... все это сильно зависит от операционной системы, настроек, прав доступа. Если в этом совсем ничего не понимать, то простые ошибки, типа занятого порта или лимита на открытые дескрипторы, можно искать днями.
В результате, и тесты проходят, и все работает, а нагрузку не держит! Или крашится с непонятным результатом.
Я уж не говорю про десктопные приложения, утилиты, cli и gui.
Если хотите делать реально переносимые приложения, придется немного глубже копать, чем ява.
Ну и пример. Сейчас пишу, да-да, аудиоплеер с биндингом к gstreamer. Разрабатываю на маке, отлаживаю в линуксе, а целевая система - на arm с armbian. Как-то так.