Вручную реализовать модификацию и переупаковку стороннего пакета jar

Java задняя часть
Вручную реализовать модификацию и переупаковку стороннего пакета jar

Эта статья участвовала в приказе о созыве Haowen, нажмите, чтобы просмотреть:Двойные заявки на внутреннюю и внешнюю стороны, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов!

предисловие

В процессе разработки в проект всегда вводятся некоторые сторонние пакеты зависимостей, так что некоторые реальные дела могут быть выполнены путем прямого вызова методов в пакете jar. Но иногда метод инкапсуляции в пакете jar может отличаться от наших реальных потребностей.Он должен быть переупакован после изменения бизнес-логики.Однако пакет jar может не импортировать идеи и другие инструменты, такие как обычные проекты maven, для модификации, а затем напрямую использовать команда maven для завершения, много раз вам нужно установить некоторые инструменты декомпиляции, чтобы открыть их, и их нельзя напрямую изменить в инструментах декомпиляции. Эта статья в основном нацелена на типы файлов в пакете jar и реализует замену файлов в пакете jar и создание файлов байт-кода класса двумя способами.

задний план

В последнее время бизнесу необходимо внедрить в проект функцию предварительного просмотра файлов.Поскольку используется сторонний jar-пакет kkFileView, некоторым предприятиям необходимо настроить его самостоятельно, а затем использовать только что созданный jar-пакет для развертывания. В сочетании с вашей собственной фактической ситуацией в проекте, в соответствии с типом файла, который будет изменен в пакете jar, в этой статье в основном представлены два метода реализации типов файлов: один из них заключается в замене файлов типа, отличного от Java, в пакете jar, то есть файлов которым не нужно генерировать байт-коды классов. Например, файлы с суффиксом ftl, а другие — это файлы, которым необходимо генерировать байт-коды классов, такие как файлы объектов, служб, контроллеров и других типов. Без лишних слов, пожалуйста, обратитесь к процессу операции.

Операционные процедуры

1. Модификация пакета jar без создания файлов байт-кода

Как показано на рисунке:первый шаг: Найдите пакет jar, который нужно изменить, щелкните правой кнопкой мыши, чтобы выбрать метод открытия, а затем выберите плагин декомпилятора jd-gui (приложение необходимо установить самостоятельно).После открытия найдите соответствующий файл ftl, дважды -щелкните его, чтобы открыть, а затем Ctrl + C, чтобы скопировать содержимое, вставьте его в программное обеспечение блокнота, измените соответствующее содержимое и сохраните его в каталоге, указанном вами (примечание: имя должно совпадать с именем исходного файла )

图1

второй шаг: найдите пакет jar прямо сейчас, щелкните правой кнопкой мыши, чтобы выбрать метод открытия, затем выберите инструмент сжатия 7.zip или WinRAR, чтобы открыть, затем найдите расположение измененного файла, перетащите файл на первом шаге и замените его.

图2

图3

третий шаг: Запустите пакет jar, программа вызовет метод в банке и проверьте эффект запуска.

до исправления:

图4

После модификации:

图5В настоящее время официальная информация о группе QQ в соответствующем банке внизу страницы с ошибкой предварительного просмотра была удалена, и цель достигнута.

2. Метод модификации пакета jar, который должен создать файл байт-кода.

Как показано на рисунке: теперь я хочу изменить файл, соответствующий классу сущности, и добавить новый атрибут, как мне это сделать?

图6

первый шаг: То же, что и выше, найдите пакет jar, который нужно изменить, щелкните правой кнопкой мыши, чтобы выбрать метод открытия, а затем выберите плагин декомпилятора jd-gui (приложение необходимо установить самостоятельно), после открытия найдите соответствующий файл, дважды щелкните, чтобы открыть, а затем нажмите Ctrl+C, чтобы скопировать файл. Вставьте содержимое в программное обеспечение блокнота, измените соответствующее содержимое и сохраните его в каталоге того же уровня, где находится пакет jar (примечание: имя должно быть таким же как исходное имя файла, постарайтесь находиться в каталоге того же уровня, чтобы последующее использование команды javac для создания файла calss), здесь используется только для тестирования, просто добавьте новое свойство, как показано на рисунке

图7

图8

второй шаг: Поскольку некоторые файлы в проекте springboot имеют зависимости, пакет package может быть не найден при использовании команды javac для создания файла байт-кода (например, пакет cn.keking.config не существует), поэтому здесь случайный jar в пакете project.(например, filter-2.0.235.jar) и пакет jar, который необходимо изменить (например, kkFileView-3.6.0.jar) в одном каталоге, а затем используйте инструмент сжатия 7.zip, чтобы открыть два файла пакета jar соответственно. Удалите все файлы в первом пакете jar, а затем скопируйте или перетащите файлы из каталога, который нужно изменить (например, каталог cn) во втором пакете jar, в другой пакет jar, как показано на фигура

图9

图10

третий шаг: Затем в верхней части каталога, где находится пакет jar, введите команду cmd, нажмите Enter и войдите в режим командной строки, как показано на рисунке

图11

图12

图13

четвертый шаг: Выполните следующую команду во всплывающем окне: Код выглядит следующим образом

javac -cp C:\Users\rongke\Desktop\test\filters-2.0.235.jar C:\Users\rongke\Desktop\test\FileAttribute.java

Как показано

图14

Нажмите Enter, вы увидите, что файл байт-кода класса сгенерирован, а содержимое изменилось, как показано на рисунке.

微信图片_20210707223208.png

微信图片_20210707223134.png

На этом этапе вы должны знать следующий процесс операции.Используйте 7.zip, чтобы открыть kkFileView-3.6.0.jar, найдите указанное местоположение файла байт-кода, а затем перетащите новый файл класса, чтобы заменить исходный. файл байт-кода класса.

Что ж, сегодняшняя публикация здесь. Если она вам поможет, не забудьте поставить лайк редактору! Если у вас есть лучший способ реализовать это, вы также можете оставить комментарий ниже и обсудить его вместе!