Você pode experimentar o nível gratuito da Amazon, que, por sua vez, oferece uma mini instância gratuita por um ano.
link
Selecione uma imagem do Ubuntu a partir das imagens públicas e instale-a na instância e, em seguida, apt-get install tomcat6 java
etc para instalar um contêiner de aplicativo da Web java.
Há mais alguns detalhes sobre essa questão / resposta sobre o uso da camada gratuita da AWS. link
Além disso, o Hpcloud.com recebe uma versão beta privada de seu novo serviço de nuvem, que você pode se inscrever aqui; link
O que pode lhe dar uma instância gratuita por alguns meses. (Eu tenho executado uma instância por cerca de 4 meses, o que é útil para experimentar novas instalações e semelhantes e tem um limite de RAM muito maior do que a conta gratuita da AWS)
O motivo pelo qual você pode achar difícil obter hospedagem java gratuita, como você pode estar familiarizado com scripts mod_php ou cgi, é que, em geral, os aplicativos java não compartilham bem os recursos. Quero dizer, no sentido de que, por exemplo, o tomcat tem recursos alocados por aplicativo implantado, o que significa que não é prático executar 100 guerras tomcat no mesmo servidor de aplicativos. Mas o mesmo não acontece com os aplicativos PHP executados em mod_php, onde apenas as solicitações em execução e armazenadas em cache estão consumindo RAM. (minha compreensão muito ingênua ...)