クラスファイルの jdk ベンダーを見つけようとしましたが、できませんでした。
コンパイルされたJavaファイルのjdkベンダーを見つけることができるかどうかを調べるのを手伝ってくれる人はいますか? はいの場合、どのように?
http://en.wikipedia.org/wiki/Java_class_fileを参照してください。クラス ファイル ヘッダーには、Cafe Babe とクラス フォーマット バージョンの情報だけを格納する場所はありません。
Java クラス ファイル構造には、10 の基本的なセクションがあります。
Magic Number: 0xCAFEBABE
Version of Class File Format: the minor and major versions of the class file
Constant Pool: Pool of constants for the class
Access Flags: for example whether the class is abstract, static, etc.
This Class: The name of the current class
Super Class: The name of the super class
Interfaces: Any interfaces in the class
Fields: Any fields in the class
Methods: Any methods in the class
Attributes: Any attributes of the class (for example the name of the sourcefile, etc.)
jdk ベンダーは、Java クラス ファイル構造のどこにも記載されていません。Inside the Java Virtual Machine
第6章を読むことがThe Java Class File
できます.JDKベンダーについて何も見つけることができないと確信しています.
いいえ、実際には不可能です。
理論的には、Javaコンパイラーが、コンパイラーのベンダー名を保持するために非標準属性をattributes
テーブルに含めることは可能です。(JVMは特に非標準属性の使用を許可し、JVMが理解できない属性を無視する必要があります。)しかし、これを行うコンパイラーはありません。