Sunday, September 2, 2001 10:27 AM
It's a limitation of the classfile format. The exceptions table, the line number table and the local variable table all use 16-bit addresses to point into the method's code. Also, most of the branch instructions (all the ifxxx instructions and goto) use 16-bit addresses. Strangely, there is a goto_w instruction that takes a 32-bit address even though the JVM spec points out that the extra 16-bits could never be used.
For more info, read section 4.10 of the JVM specification.