Java is supposed to be "write once, run anywhere" and it really can be, but in some cases it turns into "write once, debug everywhere".
What are the most common reasons for problems when moving a Java application from one platform to another?
What are un-common but interesting reasons?