どぅーちゅいむーにー

これ、Twitterでよくね?という日々の記録かも

classファイルのバージョンを調べる、とか。

.class ファイルが作成されたバージョンというのでしょうか。
.class ファイルを置き換えるときに、diff -b でバイナリレベルで差異はあるけど、ソースは同じはず・・・とか。


javap -v -classpath クラスパス クラス名

E:\path\to\classes>javap -v -classpath . test.HelloWorld
Compiled from "HelloWorld.java"
public class test.HelloWorld extends java.lang.Object
  SourceFile: "HelloWorld.java"
  minor version: 0
  major version: 50
  Constant pool:
const #1 = class        #2;     //  test/HelloWorld
const #2 = Asciz        test/HelloWorld;
const #3 = class        #4;     //  java/lang/Object
const #4 = Asciz        java/lang/Object;
const #5 = Asciz        <init>;
const #6 = Asciz        ()V;
const #7 = Asciz        Code;
const #8 = Method       #3.#9;  //  java/lang/Object."<init>":()V
・・・

minor version/major version がコンパイルされたバージョンということで。


ちなみに、major version の50は1.6、JDK1.5だと49になるようです。