O Ubuntu é uma distribuição de muitos programas escritos em muitos idiomas diferentes. Então, para responder a sua pergunta: Claro que você pode escrever uma aplicação para o Ubuntu usando Java. Você precisará de algum Java SDK e aqui está. isto é praticamente o mesmo que codificar para o Windows ao lado de você não tem estruturas específicas do Windows, por exemplo para a interface do usuário.
Unity é um ambiente de área de trabalho - uma coleção de softwares que adiciona uma área de trabalho, um tipo de barra de tarefas, systray etc.