如何识别编写代码的Java版本?

时间:2018-10-14 11:33:31

标签: java java-ee

假设银行应用程序是用Java EE开发的。现在,我们是使用该应用程序的新人们,不确定用于开发该应用程序的Java EE的版本。

我们如何确定开发该项目的Core Java / Java EE版本?

3 个答案:

答案 0 :(得分:2)

  

我们如何确定开发该项目的Core Java / Java EE版本?

没有100%可靠的方法来做到这一点。

  • 如果使用Maven或Gradle构建项目,则该项目的声明依赖项(在构建文件中)将列出Java EE API的特定版本,以及(通常)特定的Java源和目标版本。

  • Ant构建文件中可能有类似的线索,尽管在依赖关系的情况下,您将依赖类路径条目的路径名中的线索……可能不存在。

  • 对于Java EE,使用XML文件的名称空间URL中可能有线索;例如web.xmlapplication.xml

  • 如果以前的版本没有帮助,则可以使用各种JDK和各种Java EE API测试编译代码库。这样可以缩小代码库与兼容的版本范围。

  • 如果您已有.class文件,那么javap可以告诉您构建时使用的目标字节码版本。但是,这不是一个可靠的指标,因为它不会告诉您开发所针对的Java版本。

答案 1 :(得分:1)

如果您想知道使用哪个Java版本来编译该类,可以使用JRE和JDK中提供的javap。它会读取您的类字节码并告诉您版本。

javap -v out/com/kineolyan/tzio/diffs/Main.class为您提供:

Classfile /mnt/Grishka/Projets/project-tz-io/out/com/kineolyan/tzio/diffs/Main.class
  Last modified 9 oct. 2018; size 1806 bytes
  MD5 checksum 26b264396d74f1a68032bf5cd17aab09
final class com.kineolyan.tzio.diffs.Main
  minor version: 0
  major version: 53
  flags: (0x0030) ACC_FINAL, ACC_SUPER
  ....

请参见this page,以将主要和次要版本与标准名称进行匹配。例如,53.0是Java9。

答案 2 :(得分:0)

要检查项目的Java版本(如果使用Maven构建)

  1. 转到pom.xml
  2. 检查属性
  3. java.version

代码看起来像这样

<properties>
    <java.version>11</java.version>
    <start-class>org.la.ecom.portal.teacher.EcommercePortalTeacherApplication</start-class>
</properties>