In my blog, I tell the story in detail of how the class version number (the one _embed_ded by the Java compiler) is changed during an Ant build at the Jar step:
http://www.openmakesoftware.com/build-blogs/mavericks/major%11minor-java-gremlins-in-ant-by-sean-blanton/This resulted in the incorrect major.minor version error on deployment that you see when you deploy code compiled with a 1.5 JDK to a 1.4 JVM.
It was found that the class files in the build area were all correct, but the version # had changed from 48.0 to 49.0 in only a few classes inside the JAR.
Although the configuration of the machine checked out, there was a Sun JDK 1.5 installed, and once that was removed the problem went away.
Can anyone conceive of how this could happen internally? Does Ant call the correct 1.4 compiler class, but then hiccups calling the archive class? If so, why are only a few classes affected?
Thanks - Just curious on this one