假设银行应用程序是用 Java EE 开发的。我们是现在致力于该应用程序的新人,不确定用于开发该应用程序的 Java EE 版本。
我们如何识别开发该项目的 Core Java/Java EE 版本?
我们如何识别开发该项目的 Core Java/Java EE 版本?
(请注意,“开发用于”和“运行”是不同的问题。我正在回答前者......这就是所问的问题。)
没有 100% 可靠的方法可以做到这一点。
如果项目是使用 Maven 或 Gradle 构建的,则项目声明的依赖项(在构建文件中)将列出 Java EE API 的特定版本,以及(通常)特定的 Java 源和目标版本。
Ant 构建文件中可能有类似的线索,但在依赖关系的情况下,您将依赖类路径条目的路径名中的线索……但这些线索可能不存在。
对于 Java EE,XML 文件使用的命名空间 URL 中可能有线索;例如web.xml,application.xml.
如果前面的方法没有帮助,那么您可以使用各种 JDK 并针对各种 Java EE API 来测试编译代码库。这应该会缩小代码库兼容的版本范围。
如果您有现有.class文件,则javap可以告诉您构建时使用的目标字节码版本;看到这个答案。然而,这不是一个可靠的指标,因为它没有告诉您代码库是为哪个版本的 Java开发的。
如果您想了解某个项目实际兼容或实际运行的 Java 版本,唯一确定的方法就是对其进行测试。
如果您想知道使用哪个版本的 Java 来编译该类,可以使用javapJRE 和 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
....
Run Code Online (Sandbox Code Playgroud)
请参阅此页面以将主要版本和次要版本与标准名称相匹配。例如,53.0是Java9。
代码看起来像这样
<properties>
<java.version>11</java.version>
<start-class>org.la.ecom.portal.teacher.EcommercePortalTeacherApplication</start-class>
</properties>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22564 次 |
| 最近记录: |