Редактирование файла класса из файла JAR также может быть вызвано исправлением исполняемого файла Java (файлов Jar) без знания исходного кода. Давайте посмотрим, как отредактировать файл класса из файла JAR, используя простой способ исправления исполняемого файла Java.
- Методы (метод 1 игнорируется для объяснения в этой статье, поскольку он является обычным)
- Метод 2 (извлечение классов Java из исполняемого файла> Изменение байт-кода Java> Обновление исполняемого файла с помощью измененных классов/файлов с помощью команды подсказка)
- Шаги высокого уровня:
- 1. Настройте среду
- 2. Используйте JD-GUI для просмотра файла JAR
- 3. Распакуйте файл JAR
- 4. Измените. class с помощью редактора байт-кода Java
- 5. Повторно упакуйте измененные классы в новый архивный файл
- 6. Проверьте это с помощью JD-GUI
- Метод 3 (Извлечь классы Java из исполняемого файла> Изменить байт-код Java> Обновить исполняемый файл с помощью измененных классов/файлов с помощью командной строки)
- Шаги высокого уровня:
- 5. Обновите измененные классы в существующем файле JAR
- Заключение
- Ссылки
Методы (метод 1 игнорируется для объяснения в этой статье, поскольку он является обычным)
- Декомпилируйте файл JAR> Импортируйте декомпилированные классы в IDE (Eclipse, NetBeans и т. д.)> Измените исходный код> Перекомпилировать> Перестроить/перепаковать как JAR
- Извлечь классы Java из JAR> Изменить байт-код Java> Проверить> Повторно упаковать файл JAR
- Извлечь Java классы из исполняемого файла> Изменить байт-код Java> Обновить исполняемый файл с помощью измененных классов/файлов с помощью командной строки
Первый метод, упомянутый выше, является хорошим вариантом, если у вас есть исходный код кода и знаком с компиляцией Java, концепциями объектно-ориентированного программирования, но имеет несколько упомянутых ниже сложностей
- Целевой файл JAR имеет зависимости от других библиотек. Вы должны быть знакомы с этими зависимостями в своем проекте.
- Процесс декомпиляции не является точной наукой, поэтому ожидайте исправления ошибок, прежде чем заставлять его перекомпилировать
Когда мы просто хотим отредактировать несколько строк, перекомпиляция всего проекта без ошибок компиляции – болезненная работа.
Таким образом, метод (1) не является обязательным для использования, давайте также рассмотрим метод (2). Метод (2) быстрее, менее подвержен ошибкам и довольно прост в исполнении.
Метод 2 (извлечение классов Java из исполняемого файла> Изменение байт-кода Java> Обновление исполняемого файла с помощью измененных классов/файлов с помощью команды подсказка)
Шаги высокого уровня:
- Настройка среды
- Используйте JD-GUI, чтобы заглянуть в Файл JAR
- Распакуйте файл JAR
- Измените файл .class с помощью редактора байт-кода Java.
- Повторно упакуйте измененные классы в новый архив файл
- Проверьте его с помощью JD-GUI
1. Настройте среду
Убедитесь, что у вас установлен JDK и путь к классам настроен правильно, для проверки -> Открыть командную строку
Тип
java -version
На моем компьютере результат выглядит примерно так:
версия java "1.8.0_171" Java ( TM) Среда выполнения SE (сборка 1.8.0_171-b11) 64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 25.171-b11, смешанный режим)
2. Используйте JD-GUI для просмотра файла JAR
Я предпочитаю JD-GUI для просмотра файла JAR, вы можете установить JD-GUI по ссылке ниже,
http://jd.benow.ca/
Просматривая файл JAR в нашем примере, мы могли видеть ниже класс в JD-GUI,
3. Распакуйте файл JAR
Создайте новую папку и скопируйте файл JAR в папку. Использование приведенной ниже команды распакует файл jar в папке.
jar -xf HelloWorld.jar
4. Измените. class с помощью редактора байт-кода Java
Я предпочитаю редактор байт-кода Java редактировать файл .class. Редактор байт-кода Java можно загрузить по ссылке ниже,
http://set.ee/jbe/
В этом примере я собираюсь изменить строку « Привет »на« Добро пожаловать »из файла HelloWorld.class в редакторе байт-кода. Для редактирования перейдите к уважаемому пакету, файлу в JBE.
5. Повторно упакуйте измененные классы в новый архивный файл
Перейдите в папку HelloWorld и введите следующую команду в командной строке CMD, чтобы перепаковать файл JAR.
jar -cvf HelloWorld-Custom. jar *. *
6. Проверьте это с помощью JD-GUI
Теперь вы знаете, как просматривать JAR-файл с помощью JD-GUI. Откройте только что созданный файл HelloWorld-Custom.jar и проверьте файл класса на предмет модификации.
Теперь давайте посмотрим на метод (3), который я предпочитаю,
Метод 3 (Извлечь классы Java из исполняемого файла> Изменить байт-код Java> Обновить исполняемый файл с помощью измененных классов/файлов с помощью командной строки)
В этом методе только шаг 5 зависит от метода (2).
Шаги высокого уровня:
- Настройка среды
- Используйте JD-GUI, чтобы заглянуть в файл JAR
- Распакуйте файл JAR.
- Измените файл .class с помощью редактора байт-кода Java.
- Обновите измененные классы в существующем файле JAR
- Проверьте это с помощью JD-GUI
Выполните все, как в методе (2), за исключением шага 5. После завершения шага 4
5. Обновите измененные классы в существующем файле JAR
Используя следующую команду в командной строке, обновленный файл .class можно заменить существующим файлом JAR. Теперь перейдите в папку, в которой доступен JAR-файл в командной строке, и введите следующую команду.
jar uf jar-file input-file (s)
В этой команде:
- Параметр u указывает, что вы хотите обновить существующий файл JAR.
- Параметр f указывает, что файл JAR для обновления указан в командной строке.
- jar-file – это существующий файл JAR, который необходимо обновить.
- input-file (s) – это разделенный пробелами список из одного или нескольких файлов, которые вы хотите добавить в файл JAR.
Любые файлы, уже находящиеся в архиве, имеющие то же имя пути, что и добавляемый файл, будут перезаписаны.
Итак, в нашем примере – я собираюсь предоставить команду ниже.
jar uf -HelloWorld.jar com/talkinfo/HelloWorld.class
Теперь файл Jar будет обновлен новым файлом класса. Для получения подробной информации об обновлении файла jar вы можете обратиться к ссылке ниже:
https://docs.oracle.com/javase/tutorial/deployment/jar/update.html
Заключение
Итак, мы увидели, как редактировать файл класса из файла JAR. Мы обсудили 3 метода, и метод (3) – это простой способ исправления файла Jar.
Ссылки
http://jd.benow.ca/
http://установить. ее/jbe/
https://docs.oracle.com/javase/tutorial/deployment/jar/update.html