当前位置:  开发笔记 > 编程语言 > 正文

如何找到已编译类的目标Java版本?

如何解决《如何找到已编译类的目标Java版本?》经验,为你挑选了3个好方法。

您可以使用标准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



1> bruno conde..:

您可以使用标准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?
在[维基百科Java类文件](http://en.wikipedia.org/wiki/Java_class_file#General_layout)上有一个主要版本号表(如主要版本51 = Java 1.7等).

2> Kalecser..:

我在网上发现了这个并且它有效.

每个'.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


`javap -verbose MyClass` =>主要版本49(十进制)= Java 1.5,50 = Java 1.6,51 = Java 1.7,52 = Java 1.8.
版本1.6 = 32和1.5是31
我发现答案[此处提供](http://stackoverflow.com/questions/1096148)稍微有点启发.

3> 小智..:

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脚本工具链.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有