Heroku have just announced a public beta of support for Java. Up until now Heroku has provided support for Node.js and Clojure, as well as Ruby, it's initial language. From a glance at the Getting Started guide, it looks very straightforward to get going. All you need to do is sign up for a free Heroku account, use Maven as your project's build system, and you're off. As pointed out in the development blog, Heroku provides a surprisingly easy way to create Java applications for the cloud:
If you've worked with Java before, the content of the hello-world sample app shown above may have surprised you. There is no "application container" in the J2EE sense; the app uses Jetty as an embedded webserver....
The capabilities promised by J2EE application containers for managing your app include deployment, restart, logging, service binding (config), and clustering (horizontal scaling). Running your Java app on Heroku, you achieve these ends via the platform instead.
But unlike J2EE, Heroku is a polyglot platform. Techniques for deployment, logging, and scaling are applicable to all app deployments, regardless of language. A common deployment infrastructure reduces language choice to just a question of syntax and libraries. Reduced coupling between app and infrastructure enables picking the right language for each job.
Heroku was bought out by Salesforce.com last December and since then has been steadily adding languages. The addition of Java opens Heroku up to a huge developer community. This also means that JVM languages are supported in Heroku now, which will please those who have been requesting JRuby support. Java developers who want to get into PaaS now have a fantastic option.