It may be a basic question but I am still unfamiliar with this thing.
This is about jdk compatibility. For example, if I used jdk 1.6 to develop my application. It definitely may fail in jre 1.5 since it may not have the necessary libraries i.e. javax.swing.GroupLayout. Forcing the user to update its jre is also not a good idea as most users may not be familiar on what jre is (ESPECIALLY in Windows where you can have multiple JRE and things are getting messy).
If I develop in jdk 1.4 or lower, then I deploy it in jre 1.5 or jre 1.6, it WILL work fine but there may be some methods that have been deprecated (it could happen) i.e. stop(), suspend() in Thread.
So what would be the best idea? I think that it is better to stick with 1.4. At least you only get the deprecated method :/