Я хочу изменить метод .class file. Я установил JD Eclipse Decompiler и открыл файл .class. Я добавил несколько кодов и сохранил файл .class. Но файл .class не меняется. Я не знаю, как использовать декомпилятор. И если это возможно, как изменить файл .class без использования декомпилятора.
Я использую Ubuntu. Привет EDIT: Вот мой декомпилированный код:
/* */ package org.hibernate.id; /* */ /* */ import java.io.Serializable; /* */ import java.sql.ResultSet; /* */ import java.sql.SQLException; /* */ import java.util.HashMap; /* */ import java.util.Properties; /* */ import org.apache.commons.logging.Log; /* */ import org.apache.commons.logging.LogFactory; /* */ import org.hibernate.HibernateException; /* */ import org.hibernate.MappingException; /* */ import org.hibernate.dialect.Dialect; /* */ import org.hibernate.type.Type; /* */ import org.hibernate.util.ReflectHelper; /* */ /* */ public final class IdentifierGeneratorFactory /* */ < /* 25 */ private static final Log log = LogFactory.getLog(IdentifierGeneratorFactory.class); /* */ /* 64 */ private static final HashMap GENERATORS = new HashMap(); /* */ /* 66 */ public static final Serializable SHORT_CIRCUIT_INDICATOR = new Serializable() < /* */ public String toString() < return «SHORT_CIRCUIT_INDICATOR»; /* */ >/* 66 */ >; /* */ /* 70 */ public static final Serializable POST_INSERT_INDICATOR = new Serializable() < /* */ public String toString() < return «POST_INSERT_INDICATOR»; /* */ >/* 70 */ >; /* */ /* */ public static Serializable getGeneratedIdentity(ResultSet rs, Type type) /* */ throws SQLException, HibernateException, IdentifierGenerationException /* */ < /* 32 */ if (!(rs.next())) < /* 33 */ throw new HibernateException(«The database returned no natively generated identity value»); /* */ >/* 35 */ Serializable type); /* */ /* 37 */ if (log.isDebugEnabled()) log.debug(«Natively generated identity: » + id); /* 38 */ return id; /* */ > /* */ /* */ public static Serializable get(ResultSet rs, Type type) /* */ throws SQLException, IdentifierGenerationException /* */ < /* 45 */ Class clazz = type.getReturnedClass(); /* 46 */ if (clazz == Long.class) < /* 47 */ return new Long(rs.getLong(1)); /* */ >/* 49 */ if (clazz == Integer.class) < /* 50 */ return new Integer(rs.getInt(1)); /* */ >/* 52 */ if (clazz == Short.class) < /* 53 */ return new Short(rs.getShort(1)); /* */ >/* 55 */ if (clazz == String.class) < /* 56 */ return rs.getString(1); /* */ >if(clazz == java.math.BigDecimal.class) < return rs.getBigDecimal(1); >/* */ /* 59 */ throw new IdentifierGenerationException(«this id generator generates long, integer, short or string78»); /* */ > /* */ /* */ public static IdentifierGenerator create(String strategy, Type type, Properties params, Dialect dialect) /* */ throws MappingException /* */ < /* */ try /* */ < /* 92 */ Class clazz = getIdentifierGeneratorClass(strategy, dialect); /* 93 */ IdentifierGenerator idgen = (IdentifierGenerator)clazz.newInstance(); /* 94 */ if (idgen instanceof Configurable) ((Configurable)idgen).configure(type, params, dialect); /* 95 */ return idgen; /* */ >/* */ catch (Exception e) < /* 98 */ throw new MappingException(«could not instantiate id generator», e); /* */ >/* */ > /* */ /* */ public static Class getIdentifierGeneratorClass(String strategy, Dialect dialect) < /* 103 */ Class clazz = (Class)GENERATORS.get(strategy); /* 104 */ if («native».equals(strategy)) clazz = dialect.getNativeIdentifierGeneratorClass(); /* */ try < /* 106 */ if (clazz == null) clazz = ReflectHelper.classForName(strategy); /* */ >/* */ catch (ClassNotFoundException e) < /* 109 */ throw new MappingException(«could not interpret id generator strategy: » + strategy); /* */ >/* 111 */ return clazz; /* */ > /* */ /* */ public static Number createNumber(long value, Class clazz) throws IdentifierGenerationException < /* 115 */ if (clazz == Long.class) < /* 116 */ return new Long(value); /* */ >/* 118 */ if (clazz == Integer.class) < /* 119 */ return new Integer((int)value); /* */ >/* 121 */ if (clazz == Short.class) < /* 122 */ return new Short((short)(int)value); /* */ >/* */ /* 125 */ throw new IdentifierGenerationException(«this id generator generates long, integer, short»); /* */ > /* */ /* */ static /* */ < /* 75 */ GENERATORS.put(«uuid», UUIDHexGenerator.class); GENERATORS.put(«hilo», TableHiLoGenerator.class); GENERATORS.put(«assigned», Assigned.class); GENERATORS.put(«identity», IdentityGenerator.class); GENERATORS.put(«select», SelectGenerator.class); GENERATORS.put(«sequence», SequenceGenerator.class); GENERATORS.put(«seqhilo», SequenceHiLoGenerator.class); GENERATORS.put(«increment», IncrementGenerator.class); GENERATORS.put(«foreign», ForeignGenerator.class); GENERATORS.put(«guid», GUIDGenerator.class); GENERATORS.put(«uuid.hex», UUIDHexGenerator.class); GENERATORS.put(«sequence-identity», SequenceIdentityGenerator.class); >>
Breed Hansen 28 дек.
2012, в 13:34
Поделиться
Почему вы хотите это сделать?
Nikolay Kuznetsov 28 дек. 2012, в 11:52
Как установить java JDK17 на Windows 10 и настроить переменные окружения.
✅ Как установить java Jdk19 последней версии на Windows 10 и настроить переменные окружения.
Потому что класс idgenerator не поддерживает BigDecimal. Я использую Hibernate и PostgreSQL и получаю эту ошибку: этот генератор идентификаторов генерирует long, integer, short или string
Breed Hansen 28 дек. 2012, в 12:00
Использование декомпилятора в 100 раз проще, чем альтернативы. Если вы найдете идею использовать декомпилятор немного, я бы попробовал другой подход, который не включает в себя изменение класса.
Источник: overcoder.net
Чем редактировать JAR?
Если вам необходимо просто открыть файл JAR, то вы можете воспользоваться программами из списка по ссылке: Чем открыть файл JAR? Если же вам необходимо изменить (отредактировать) файл, мы подготовили соответствующий список специальных программ для работы с данным типом файлов.
Самый популярный JAR редактор — это Java Development Kit (JDK) (для ОС Windows), однако изменить файл можно также, например, в Corel WinZip Mac (для ОС Mac). Ниже мы составили список программ для операционной системы Windows, Mac, Linux. Вы можете скачать редактор бесплатно, кликнув по названию программы для вашей операционной системы — каждая из них гарантированно позволит осуществить редактирование нужного файла.
Программы для редактирования JAR файлов на компьютере
Чем редактировать JAR в Windows?
Java Development Kit (JDK)
Oracle Java Runtime Environment
Corel WinZip
RARLAB WinRAR
Mac
Corel WinZip Mac
Oracle Java Runtime Environment
WinZip Mac Edition
Linux
Oracle Java Runtime Environment
Eclipse for Linux
Общее описание расширения JAR
Файл с расширением JAR (Java Archive File) — это формат созданный компанией Oracle который относится к категории Исполняемые форматы.
Файл JAR представляет из себя архив Java, являющийся видом обычного ZIP-архива, содержащего определенную часть данных с элементами языка программирования Java. Для того, чтобы реализовать JAR файл в качестве исполняемого, он должен содержать файл MANIFEST.MF, помещенный в каталог META-INF, где будет указан главный программный класс. Данный класс должен хранить метод main.
Знаете другие программы, которые могут редактировать файлы .JAR? Не смогли разобраться как отредактировать файл? Пишите в комментариях — мы дополним статью и ответим на ваши вопросы.
Видео форматы
Аудио форматы
Электронные книги
Текстовые форматы
Дисковые образы
Табличные данные
Растровые изображения
Векторные изображения
Резервное копирование
Raw
Сжатые файлы
Файлы данных
Базы
3D Изображения
CAD файлы
Файлы разработчиков
Зашифрованные файлы
Исполняемые форматы
Шрифты
Файлы игр
GIS, карты
Другие расширения
Форматы макетов
Форматы плагинов
Файлы настроек
Системные файлы
Веб форматы
Источник: filesreview.com
Модификация исходного кода пакета jar
Я считаю, что когда вы работаете над проектом, вы иногда смотрите на исходный код, или когда вы хотите изменить исходный код, вы не должны иметь возможность его изменять. Сегодня я расскажу вам, как изменить код в исходном коде и преобразовать его в пакет jar.
Во-первых, декомпиляция должна стать следующим инструментом декомпиляции. В Интернете много Jadclipse, XJad, Java Decompiler. Я использую JD-GUI здесь (скачать напрямую)
Ссылка: https://pan.baidu.com/s/1buqyVQZdY5hYdoE7ErsuPQ
Код извлечения: 36xe
Во-вторых, сначала откройте этот инструмент декомпиляции. Откройте пакет, который хотите декомпилировать.
1. Откройте этот инструмент декомпиляции. Откройте пакет, который хотите декомпилировать.
2 Щелкните этот файл и сохраните все ресурсы ->
3. Затем сгенерируйте скомпилированный файл src.
4 Откройте эту скомпилированную папку
Во-первых, есть три файла: xmlpublic.src Это декомпилированный и распакованный файл.
Xmlpublic.jar — это пакет jar, который вы хотите изменить самостоятельно.
5. Откройте папку каталога, и теперь вы можете изменять свои файлы, так что все коды в порядке.
6. Суть в том, что модифицированный вами java-файл теперь изменен, но как его поместить в пакет jar? ? ? Все мы знаем, что программы Java запускаются через загрузчик классов загрузчика классов для создания файлов .class путем компиляции файлов .java. Теперь нам нужен скомпилированный файл .class, который вы изменили.
Теперь импортируйте свой проект в компиляцию с помощью инструмента разработки, и идея, и eplise в порядке. Используемый здесь инструмент eplise. Импорт предметов здесь определенно невозможен! Таким образом, ваша самодельная структура каталогов пакета такая же, как эта структура каталогов пакета jar.
7. При импорте сообщения об ошибках являются нормальным явлением, поэтому не следует заставлять его сообщать об ошибках в изменяемый файл java.
Красная отметка — это файл, который мы изменили, и в следующий раз вы сможете увидеть исходный код. Затем мы должны убедиться, что измененный класс не сообщает об ошибках! Не беспокойтесь о других.
8. Теперь вам нужно скомпилировать проект, чтобы получить этот файл .class. Хорошая подборка.
9. А вот и главное. Теперь вам нужно заменить файл .class, который вы изменили, на распакованный пакет jar.
10. Теперь его заменили, верно!
11. Ключевым моментом теперь является упаковка и развертывание в пакет jar. Перейдите в каталог для упаковки cmd и нажмите Enter.
jar cvfm xmlpublic.jar xmlpublicMETA-INFMANIFEST.MF -C xmlpublic.jar/ .
Имя и файл пакета jar, который вы упаковываете, должны совпадать. Затем cmd и нажмите Enter.
Это упакованный пакет jar (для справки по упаковке https://blog.csdn.net/mr_pang/article/details/47028921)
12. Сравните время и размер упаковки:
Теперь он успешно упакован. Теперь пакет jar был изменен! Я не буду публиковать конкретный код. Хотя такой подход очень змеиный! Его можно скомпилировать!
Интеллектуальная рекомендация
cf 1092d2 мышление + стек
Заглавие: n столбцов из вертикально расположенных кирпичей, высота каждого столбца ai, существует бесчисленное множество кирпичей 2 * 1, которые можно разместить горизонтально только на двух соседних .
ПУТИ
Команда Python Daemon, почему это взломано? Целые трояны используют это!
Почему команда Python Daemon должна быть взломана? Весь троян используется. Yingqi. Python полный стек инженер Подумайте об использовании Python, чтобы сделать целое, троянское программное обеспечение.
Когда Mac Brew, я застрял в решении Brew Update
Не говоря уже о том, что варево переключается на источник или что -то в этом роде, он слишком бросает. Правильный метод состоит в том, что когда обновляющий варево . Control+C возвращается, чтобы ос.
Использование регулярных выражений BeautifulSoup в Python Crawler
В BeautifulSoup вы можете найти имя и атрибут по имени и атрибутам, чтобы найти конкретный html-код. Что еще похвально, attrs поддерживает регулярные выражения. Такие как: Для поиска этой строки вы мо.
Источник: russianblogs.com