En principio valen sin problemas.
Java compila a algo llamado "bytecode" que posteriormente es ejecutado por la máquina virtual. Es decir, no compila para una plataforma de hardware o software de forma nativa, sino que lo hace en algo "intermedio" que será ejecutado por la máquina virtual.
Ojo, eso quiere decir que un programa java compilado para Windows posiblemente corra sin problemas en Linux, o incluso en MacOS. Pero dudo que lo haga directamente en una plataforma movil como Android porque esta usa una serie de librerías específicas
Muchas gracias! Sí, para android sé que se usan librerías específicas, anteriormente he desarrollado para android