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

mcdcgff0  于 2023-02-07  发布在  Java
关注(0)|答案(4)|浏览(176)

假设一个银行应用程序是用Java EE开发的,而我们现在是开发该应用程序的新手,不确定用于开发该应用程序的Java EE版本。
我们如何识别开发该项目所使用的Core Java/Java EE版本?

qjp7pelc

qjp7pelc1#

我们如何识别开发该项目所使用的Core Java/Java EE版本?
(Note"为之开发"和"运行"是不同的问题。我正在回答前者......这就是被问到的问题。)
没有100%可靠的方法。

  • 如果使用Maven或Gradle构建项目,则项目声明的依赖关系(在构建文件中)将列出Java EE API的特定版本,以及(通常)特定的Java源和目标版本。
  • Ant构建文件中可能有类似的线索,但在依赖关系的情况下,您将依赖于类路径条目的路径名中的线索......而这些线索可能不存在。
  • 对于JavaEE,在XML文件使用的名称空间URL中可能有线索;例如web.xmlapplication.xml
  • 如果前面的方法不起作用,那么您可以使用各种JDK并针对各种Java EE API测试编译代码库,这样可以缩小代码库与之 * 兼容 * 的版本范围。
  • 如果您已经有.class文件,那么javap可以告诉您构建时使用的目标字节码版本;但是,这不是一个可靠的指示器,因为它没有告诉您代码库是为哪个Java版本开发的。

如果您想找出一个项目实际上与哪个或哪些版本的Java兼容或实际上在哪个或哪些版本上运行,那么唯一确定的方法就是测试它。

ki1q1bka

ki1q1bka2#

如果你想知道编译类时使用的是哪个版本的Java,你可以使用javap,它可以从JRE和JDK中读取类的字节码并告诉你版本。
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
  ....

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

fv2wmkja

fv2wmkja3#

检查项目的java版本(如果使用maven构建)

1.转到pom.xml
1.检查属性

  1. java.version
    代码如下所示
<properties>
    <java.version>11</java.version>
    <start-class>org.la.ecom.portal.teacher.EcommercePortalTeacherApplication</start-class>
</properties>
ulydmbyx

ulydmbyx4#

检查Gradle构建的项目的java兼容版本
转到build.gradle文件并搜索:

sourceCompatibility = '{version}'

相关问题