У меня есть старый файл jar с моей библиотекой, в которой используется jdk 1.7.0_03. Но на моем новом компьютере у меня не было подходящей версии jdk. Моя текущая версия 1.6. Можно ли понизить версию файла jar (1.7 -> 1.6) без исходных файлов проекта, чтобы мой файл jar мог работать на java 1.6?
Как понизить версию файла jar без проекта?
Ответы (4)
Вы можете попробовать распаковать файл jar с помощью инструмента CLI «jar» и изменить версию в файле манифеста. Затем нужно снова перепаковать файл. Это сработало для меня однажды с OSGi Bundle.
Вы не можете понизить версию файла .jar, поскольку он содержит скомпилированный код. Если этот код использует функции 1.7, вы застряли. Вы можете попробовать запустить его на 1.6. Если вам повезет, это сработает.
Можно ли понизить версию файла jar
Нет, вам нужно перекомпилировать JAR
без исходных файлов проекта
Вам нужен исходный файл для перекомпиляции. вы можете декомпилировать файлы классов, но это не так просто
Вам нужен инструмент обратного переноса байт-кода. Хотя такие инструменты существуют, нет ни одного (AFAIK), который преобразует байт-коды Java 7 в Java 6 или более ранние версии.
Кстати, использование команды jar
для замены манифеста не поможет. Формат файла классов Java имеет версию, и номер версии изменился между 1.6 и 1.7. Java 6 JVM не может справиться с файлом класса Java 1.7 (или более поздней версии) независимо от манифеста JAR.