- - PR -
xxxx.classファイルのバージョン取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-26 09:11
こんにちは
コンパイルされた「xxxx.class」が どのJAVAのバージョンでコンパイルされたかを 知る方法はあるのでしょうか? Javaツール関連を探したのですが見つける事が 出来ませんでした。 ご存知の方おられましたら教えてください。 以上 よろしくお願いします。 | ||||
|
投稿日時: 2007-01-26 10:24
クラスファイルは以下のような感じで始まります。
クラスファイルの先頭から5/6バイト目がマイナーバージョン クラスファイルの先頭から7/8バイト目がメジャーバージョン を示しています。このバージョンはクラスファイルのバージョンで、 JDKのバージョンとは一致しません。上記例では48.0です。 確かJDK1.5はクラスファイルのバージョンが49.0ですが、 どこかに対応表があるといいですね。 | ||||
|
投稿日時: 2007-01-26 10:31
JDK 1.4 のコンパイラ作成された JDK 1.1仕様のクラスファイルがあった場合は
1.4 と 1.1 のどちらを取得したいのでしょうか? 後者であればかつのりさんの回答の通りです。資料はこの辺でしょうか。 http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80959 前者を得る方法は知りません。 [ メッセージ編集済み 編集者: ひろ@ya 編集日時 2007-01-26 12:33 ] | ||||
|
投稿日時: 2007-01-26 14:12
ご回答ありがとう御座いました。
ご回答の内容を元にバージョンの 見つけ方がわかりました。 その他にも何か見つける方法が ありましたら また、お教え願います。 以上 よろしくお願いします。 | ||||
|
投稿日時: 2007-01-26 16:02
javap でやるのが正攻法だと思っています。
$ javap -v Test Compiled from "Test.java" class Test extends java.lang.Object SourceFile: "Test.java" minor version: 0 major version: 49 |
1