您可以使用标准JDK附带的javap实用程序.
javap -verbose MyClass Compiled from “MyClass.java” public class MyClass extends java.lang.Object SourceFile: “MyClass.java” minor version: 3 major version: 45
使用文件程序(在大多数GNU/unix系统上)可以实现相同的结果:file Foo.class Foo.class:编译的Java类数据,版本45.3 BTW:如何编译生成此输出(45.3),是.45 jdk1. x还是j2me? (4认同)
在[维基百科Java类文件](http://en.wikipedia.org/wiki/Java_class_file#General_layout)上有一个主要版本号表(如主要版本51 = Java 1.7等). (3认同)
Kalecser.. 23
我在网上发现了这个并且它有效.
每个'.class'文件都以以下内容开头:
幻数[4字节]
版本信息[4字节]
使用以下每个选项编译的'.class'文件的hexdump显示:
javac -target 1.1
==>CA FE BA BE 00 03 00 2D
javac -target 1.2
==>CA FE BA BE 00 00 00 2E
javac -target 1.3
==>CA FE BA BE 00 00 00 2F
javac -target 1.4
==>CA FE BA BE 00 00 00 30
也许您可以使用此信息编写自己的".class"文件版本检查实用程序,使用Java,或者脚本或shell语言;)!
我希望这有帮助.
安东尼博拉
来自:http://bytes.com/groups/java/16603-how-determine-java-bytecode-version
您可以使用标准JDK附带的javap实用程序.
javap -verbose MyClass Compiled from “MyClass.java” public class MyClass extends java.lang.Object SourceFile: “MyClass.java” minor version: 3 major version: 45
我在网上发现了这个并且它有效.
每个'.class'文件都以以下内容开头:
幻数[4字节]
版本信息[4字节]
使用以下每个选项编译的'.class'文件的hexdump显示:
javac -target 1.1
==>CA FE BA BE 00 03 00 2D
javac -target 1.2
==>CA FE BA BE 00 00 00 2E
javac -target 1.3
==>CA FE BA BE 00 00 00 2F
javac -target 1.4
==>CA FE BA BE 00 00 00 30
也许您可以使用此信息编写自己的".class"文件版本检查实用程序,使用Java,或者脚本或shell语言;)!
我希望这有帮助.
安东尼博拉
来自:http://bytes.com/groups/java/16603-how-determine-java-bytecode-version
Linux/Unix用户在标准工具箱中有一个很好的工具:file
实用程序.现代版本可以检测Java类的版本,甚至可以输出已知类文件类型的Java版本.
示例输出:
com/sample/Tracker.class: compiled Java class data, version 45.3 com/sample/TestListener.class: compiled Java class data, version 49.0 (Java 1.5)
它非常适合标准的Unix脚本工具链.