In theory, JDK 1.3.x but increasingly many of the older 1.3.x releases have had bytecode execution problems.
In practice, probably at least 1.4.x. All JDK implementations are not the same, and problems can stem from the vendor release for a particular platform. For example, I have recently found an execution problem (NPE) for Jetty 4.2.14 with the latest IBM 1.4.1 JDK release for Linux. It runs fine for build cxia32141-20030522 - the prior IBM JDK release.
I haven't had a chance yet to go back and debug the problem.
So YMMV with a JDK.