9000 (or 9.0) really is the version number.
Something something over 9000.
Interestingly, there’s a good reason behind this. JRuby version were traditionally out of sync with MRI current. (Last version was 1.7.x) That was good, because that allowed for the JRuby version and the version of the Ruby language it is compatible to to be clearly not the same. Now, bumping to 2.x would have broken that. JRuby 2.x, compatible to some Ruby 2.x. So the version jumps far enough for that probably never to become a problem. Add a geeky joke, done.
Actually the JRuby versions never followed the MRI versions. They follow Java versions. Hence JRuby 1.7 has support for 2.0 but was released with Java 1.7 in mind.
In the article, it mentions that the JRuby project moved away from the 1.x versioning as too many people confused the 1.x version to correlate to a MRI version. Thereby confusing many developers who thought JRuby was far behind MRI in compatibility.
For the 9th release of JRuby, they rectified this by using semantic version number 9.0.0 and seemed to have added the additional 0 for extra semantic versioning / joking purposes :)
I’m pretty sure they never intentionally followed Java versions. Jruby 1.2 has nothing to do with Java 1.2. The addition of invokedynamic in 1.7 was just coincidence.