В настоящее время я работаю над полировальным приложением J2ME, просто улучшая его. Я не могу получить точную версию файла jar. Есть ли способ найти версию файла jar для импорта, выполненного в классе? Я имею в виду, что если у вас есть что-то, импортируйте xyz; можем ли мы узнать, к какой версии принадлежит пакет jar xy?
jar
version
executable-jar
Ритеш Мэнджи
источник
источник
sqljdbc42.jar
файлах, которые я использовал с Cognos, но Cognos может сообщить версию (4.2.6420.100). Откуда у него эта версия, если она не записана в манифесте?Вам нужно разархивировать его и проверить
META-INF/MANIFEST.MF
файл, напримерили более конкретно:
источник
Чтобы расширить ответы выше, внутри файла META-INF / MANIFEST.MF в JAR вы, вероятно, увидите строку:
Manifest-Version: 1.0
← Это НЕ номер версии jar!Вам нужно искать
Implementation-Version
, какая из строк произвольного текста, если она есть, полностью зависит от автора JAR относительно того, что вы там найдете. См. Также документацию Oracle и спецификацию версии пакета.источник
Просто чтобы завершить приведенный выше ответ.
Файл манифеста находится внутри jar по
META-INF\MANIFEST.MF
пути.Вы можете просмотреть содержимое jar в любом архиваторе, поддерживающем zip.
источник
Каждая версия jar имеет уникальную контрольную сумму. Вы можете рассчитать контрольную сумму для своей банки (в которой не было информации о версии) и сравнить ее с различными версиями банки. Мы также можем выполнить поиск в банке по контрольной сумме.
Обратитесь к этому вопросу, чтобы вычислить контрольную сумму: Как лучше всего рассчитать контрольную сумму для файла, находящегося на моей машине?
источник
В основном вы должны использовать
java.lang.Package
класс, который использует загрузчик классов, чтобы предоставить вам информацию о ваших классах.пример:
Я думаю, что известно, что logback использует эту функцию для отслеживания имени / версии JAR каждого класса в его производимых трассировках стека.
см. также http://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html#wp90779
источник
Эта простая программа перечислит все случаи для версии jar, а именно
Файл манифеста не найден
Он использует javaxt-core jar, который можно загрузить с http://www.javaxt.com/downloads/
источник
Я опаздываю, но вы можете попробовать следующие два метода
используя эти необходимые классы
Эти методы позволяют мне получить доступ к атрибутам jar. Мне нравится иметь обратную совместимость и использовать новейшие версии. Так что я использовал это
Это хорошо работает, когда вы используете maven и нуждаетесь в деталях pom для известных классов. Надеюсь это поможет.
источник
Для Linux попробуйте следующее:
найти . -name "YOUR_JAR_FILE.jar" -exec zipgrep "Версия реализации:" '{}' \; | awk -F ':' '{print $ 2}'
источник
Если у вас есть WinRAR, откройте банку с помощью WinRAR, дважды щелкните, чтобы открыть папку
META-INF
. ИзвлечениеMANIFEST.MF
иCHANGES
файлы в любом месте (скажем рабочий стол).Откройте извлеченные файлы в текстовом редакторе: вы увидите версию реализации или версию выпуска.
источник
Вы можете отфильтровать версию из файла МАНИФЕСТА, используя
unzip -p my.jar META-INF/MANIFEST.MF | grep 'Bundle-Version'
источник
Bundle-Version
.Думал, что дам более свежий ответ, так как этот вопрос все еще довольно часто встречается в поисковых запросах.
Проверка версии CLi JAR:
Выполните следующее в файле jar CLi:
Пример вывода:
Версия CLi указана выше.
Чтобы получить версию сервера, запустите следующее:
(приведенное выше будет зависеть от вашей реализации аутентификации, пожалуйста, измените соответствующим образом)
Пример вывода:
источник
Это можно проверить командой
java -jar jarname
источник
main()
метод JAR