In Java EE you give the container your application and tell it that this is everything there is.
The container scans your application and can determine all the Entities within it, thus giving it the list of entities.
In Java SE you give the jvm your class name, it tries loading that class from the classpath and each time tries loading classes from the classpath.
In a Java SE world there is no trivial way to get a complete list of the contents of all the classes visible on the classpath, all you can try to do is load a class that you know the name of.
This is why you have to specify the list of classes for the Java SE world.
The way out of this mess is to do the class scanning yourself, and inject a classloader which provides the persistence.xml resource that you have generated by your scanning (non trivial but possible)
[Message sent by forum member 'stephenconnolly' (stephenconnolly)]
http://forums.java.net/jive/thread.jspa?messageID=205172