java.class.version is wrong?
majiro at distribution.co.jp
Fri Mar 12 07:57:29 PST 1999
gback> > Jiro KANAYAMA writes:
gback> > > Hello,
gback> > >
gback> > > gback> If you start kaffe -D, as in "kaffe -Djava.class.version=46"
gback> > > gback> you can set it to whatever you want.
gback> > >
gback> > > So, in kaffe, has java.class.version different definition from JLS?
gback> The JLS does not specify a value to my knowledge. The JLS as well as
gback> the JDK doc only say that this property is defined. At least, from my
gback> reading. I'd appreciate a pointer if it does.
Sorry about my inaccuracy explanation.
gback> I haven't seen the value for java.class.version published anywhere. Has
gback> anybody? Note that this is a version number for the class library, not for
gback> the class file format.
See The JavaTM Virtual Machine Specification, 4.1 ClassFile.
A class file contains a single ClassFile structure:
The items in the ClassFile structure are as follows:
The values of the minor_version and major_version items are the minor and major version numbers of the compiler that produced this class file. An
implementation of the Java Virtual Machine normally supports class files having a given major version number and minor version numbers 0 through
some particular minor_version.
If an implementation of the Java Virtual Machine supports some range of minor version numbers and a class file of the same major version but a higher
minor version is encountered, the Java Virtual Machine must not attempt to run the newer code. However, unless the major version number differs, it will
be feasible to implement a new Java Virtual Machine that can run code of minor versions up to and including that of the newer code.
A Java Virtual Machine must not attempt to run code with a different major version. A change of the major version number indicates a major
incompatible change, one that requires a fundamentally different Java Virtual Machine.
In Sun's Java Developer's Kit (JDK) 1.0.2 release, documented by this book, the value of major_version is 45. The value of minor_version is 3. Only
Sun may define the meaning of new class file version numbers.
Also, see JLS1.0, 20.18 The Class java.lang.System.
Key Description of associated value
java.class.version Java class format version number
And JDK1.0.2 and JDK1.1.7B return value 46.3 about java.class.version.
Then, I 'expected' "Java class fotmat version" mean measure version
and minor version in ClassFile structure.
Please tell me your opinion.
More information about the kaffe