Class 有没有可能找到jdk供应商提供的已编译java文件
我曾试图为我的类文件找到jdk供应商,但未能找到Class 有没有可能找到jdk供应商提供的已编译java文件,class,java,compiled,Class,Java,Compiled,我曾试图为我的类文件找到jdk供应商,但未能找到 有谁能帮我找出是否有可能找到jdk供应商来提供一个编译过的java文件。如果是,则如何进行?请参阅。类文件头中没有该信息的位置,只有Cafe Babe和类格式版本。Java类文件结构有10个基本部分: Magic Number: 0xCAFEBABE Version of Class File Format: the minor and major versions of the class file Constant P
有谁能帮我找出是否有可能找到jdk供应商来提供一个编译过的java文件。如果是,则如何进行?请参阅。类文件头中没有该信息的位置,只有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.)
java类文件结构中没有提到jdk供应商。
您可以阅读Java虚拟机中的
第6章Java类文件
,我相信您将无法找到任何关于JDK供应商的信息。不,这在现实中是不可能的
从理论上讲,Java编译器可以在中包含非标准属性来保存编译器供应商名称。(JVM特别允许使用非标准属性,并要求JVM忽略它不理解的任何属性。),我不知道有哪种编译器能做到这一点。只是好奇:为什么你需要知道哪个JDK编译了一个.class文件?我相信Oracle是JDK的唯一供应商。@VanDarg你在OpenJDK上检查过了吗?产生的字节码应该几乎相同,到JIT对其进行优化时,使用哪种编译器真的不重要。@Alfabravo:我坚持更正!我想可能还有别的事,但不确定:)这就是我来这里的原因。谢谢你的信息。我想我可能会修补一下OpenJDK。