HOla, Mira hacer un chat en java para windows, linux, solaris etc.... no importa siempre sera lo mismo ya que java es independiente del sistema operativo que tu utilices.
Ahora un chat es un caso tipico de un sistema Client-Server.
Donde el cliente se conecta al servidor de chat, este servidor de chat recibe solicitudes de coneccion, las evalua y te da una coneccion a la pieza del chat donde todos los otros clientes conectados se encuentran. Esta conneccion se puede hacer a travez de un Socket por ej.
/Gori