Как определить версию Java, в которой написан код? - PullRequest
0 голосов
/ 14 октября 2018

Допустим, банковское приложение было разработано в Java EE.И мы - новые люди, работающие над этим приложением сейчас, не уверенные в версии Java EE, использованной для разработки этого приложения.

Как мы можем определить версию Core Java / Java EE, в которой был разработан этот проект?

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Как мы можем определить версию Core Java / Java EE, в которой был разработан этот проект?

Нет 100% надежного способа сделать это.

  • Если проект построен с использованием Maven или Gradle, в объявленных зависимостях проекта (в файлах сборки) будут перечислены конкретные версии API-интерфейсов Java EE и (как правило) конкретный источник Java ицелевая версия.

  • Вероятно, в файле сборки Ant могут быть похожие подсказки, хотя в случае зависимостей вы будете полагаться на подсказки в путевых именах записей classpath ... которые могут небыть там.

  • Для Java EE могут быть подсказки в URL-адресах пространства имен, используемых в файлах XML;например, web.xml, application.xml.

  • Если предыдущее не помогло, вы можете протестировать компиляцию базы кода с различными JDK и с различными API Java EE.Это должно сузить диапазон версий, с которыми кодовая база совместима с.

  • Если у вас есть .class файлы, то javap может сообщить вамцелевая версия байт-кода, которая использовалась при сборке.Однако это ненадежный индикатор, поскольку он не говорит вам, для какой версии Java была разработана кодовая база .

0 голосов
/ 14 октября 2018

Если вы хотите узнать, какая версия 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...