I don't know any other way aside from bootstrapping Seam from a servlet container. Thats what SeamListener class does in your web.xml declaration.
<listener> <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> </listener>
Well of course there is the testNG Seam superclass that also bootstraps Seam for testing purposes.
I have looked at using Seam in a non-web app but didn't succeed, let me know if you do succeed.
You'll need some code that gets executed as the application starts to initialize Seam by calling the correct methods on Lifecycle. You can see ServletLifecycle as an example of what this looks like in a servlet environment.