Class | JavaClass::ClassFile::ClassVersion |
In: |
lib/javaclass/classfile/class_version.rb
|
Parent: | Object |
Version of a class file.
Author: | Peter Kofler |
See: | java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#75883 |
major | [R] | |
minor | [R] |
Extract the class version from the bytes data starting at position start (which is usually 4).
# File lib/javaclass/classfile/class_version.rb, line 15 def initialize(data, start=4) @minor = data.u2(start) @major = data.u2(start+2) end
Return a debug output of this version.
# File lib/javaclass/classfile/class_version.rb, line 40 def dump [" minor version: #{@minor}", " major version: #{@major}"] end
Return the JDK version corresponding to this version like "1.6" or "unknown" if none matched.
# File lib/javaclass/classfile/class_version.rb, line 45 def jdk_version v = to_f if v >= 45.0 && v <= 45.3 # 1.0.2 supports class file format versions 45.0 through 45.3 inclusive. '1.0' elsif v > 45.3 && v <= 45.65535 # 1.1.X can support class file formats of versions in the range 45.0 through 45.65535 inclusive '1.1' elsif @major >= 46 && @minor == 0 "1.#{@major-44}" else 'unknown' end end