Декомпил сборки
Читай RSS - будь умным! Мы в Twitter! Мы VKontakte! Главная Форум Услуги Рекламодателям Карта сайта Контакты
Авторизация
Вход через
социальные сети
Вход через сайт
Регистрация
Забыли пароль?

l2maxi - всё для lineage 2
l2maxi - всё для lineage 2: ява сервера, дополнения, программы, галерея, улучшения, клиенты, файлы, боты, баги.

  Декомпил сборки


Декомпил сборки


Сегодня мы с вами научимся декомпилировать и собирать(компилировать обратно) привычные для нас ядра различных сборок.

Много криков слышится о том что без исходных кодов работать с компилированным ядром ява сервера - не возможно. Это абсолютно не верная информация и абсолютно не правильная.
Сегодня, мы с вами ознакомимся с 1 из методов работы с подобным видом продуктов.
Что нам понадобится?
1. Естественно, любой свободный декомпилятор Java среды.
2. Любой версии Java JDK платформы (Developer kit).
3. Наличие хотябы 1 полу прямой руки.
Итак, для начала - выбираем нашу любимую жертву, над которой будем усердно работать.
Не знаю, для какой цели вам нужен кусок исходных кодов - но дело ваше. Для эксперемента, жертвой были выбран скомпилированный код команды l2jserver, чтоб обидно не было никому.
Первым нашим шагом будет декомпиляция собственно нужного нам класса.
Много ума здесь совсем не нужно. Поэтому - задействуем ранее скачанный декомпилятор(я буду вести пример на основе jd gui decompiller).
Открываем jar архив с нужным нам классом:
Декомпил сборки
Декомпилируем нужный нам класс в исходные коды (java):
Декомпил сборки

Теперь, настал момент истины и их нужно обратно собрать.
Делать мы это будем ровно в 1 клик. Для сбора мы создадим папочку: D:\compile\, в которую поместим декомпилированный нами ранее класс(скрин №2) и сам .jar архив который мы декомпилировали.
Теперь - осталось не много не мало - скомпилировать наш класс. Для этого, мы используем консоль нашей OS (у виндузятников - cmd, линупсоиды - думаю подсказывать не нужно где консоль).
Для начала, проверим - доступен ли нам компилятор (javac) в исконном виде. Введем в консоль:


javac


Если после введения команды нам высветило большой манаул - все в порядке. Если же результатом исполнения стало:


"javac" не является внутренней или внешней командой


то беда пришла за нами. Дело - копеечное, решается ровно в 4 клика.
Если возникло двигаем: Мой компьюетр->свойства->дополнительно->переменные среды и ищем там переменную "Path". Выбираем - редактирование, и дописываем путь к бинарникам нашей Jdk (/путь до jdk/bin), к примеру это будет выглядеть так:


C:\program files\java\jdk6.10.1\bin


и добавляем (через ; к переменной). Сохраняем, и открываем консоль снова. Если при исполнении javac все в порядке - воуля, проблема устранена.
Теперь - непосредственно компилируем ранее декомпилированный нами класс.
Заходим туда, где лежит наш класс:


D: && cd compile


Компилируем сам класс:


D:\compile>javac -classpath l2jserver.jar -Xlint:unchecked Имя_декомпилированного_класса.java


как пример - компиляция GameServer.java :


D:\compile>javac -classpath l2jserver.jar -Xlint:unchecked GameServer.java


Что ж, на выходе (в той же папке) мы получили: наш_класс.class. Дело сделано, все довольны.
Осталось - мелочи. Открываем декомплируемое нами ядро (l2jserver.jar) простым архиватором (winzip, winrar, 7z) и доходим до уровня, где лежит старый класс (/com/sf/ и т д). Удаляем старый класс, жмем "ADD" и запихиваем сюда класс, который мы скомпилировали выше.
Вот собственно и все, мы проделали операцию нужную вам. После декомпилирования класса вы можете внести свои поправки в исходный код и успешно скомпилировать его и всунуть куда нужно.

Данная новость была скопирована с сайта ла2.100нт
Автор не я!

Ключевые теги: сборка, исходники, декомпил

>> Ява сервера » F.A.Q., Декомпил сборки

Другие новости по теме:
[Мануал] Свое Загрузочное лого (редактирование текстур) [Мануал] Свое Загрузочное лого (редактирование текстур)
Мануал как сделать свой загрузочный логотип при загрузке клиента. В этом мануале будет подробно описано как зделать загрузочное окно при загрузки клиента в игру.
Сервер через маршрутизатор (Router) Сервер через маршрутизатор (Router)
Этот мануал полезен для пользователей которые еще несильны как в разработке так и в настройке серверов.О чем пойдет речь?О настройке Логина и Гейма сервер через маршрутизатор иле другими словами -
Делаем цветные круги как на твт евенте Делаем цветные круги как на твт евенте
Многие ошибались, думаю что дать игроку ауру как на ТвТ Евенте - нельзя. Разрешите удивить Вас. Такая команда через админ-панель есть! Вы спросите и что нам из этого? Мы ответим: используйте ауру для

Разместил: monah1994 Прочитано: 10848


 
Автор: †DeMoN†™, 8 июля 2011 13:42
Группа: Гость
Комментариев: 0
Публикаций: 0
ICQ: --
Забыли добавить, что код:
1. Ужасно засоряется
2. Может содержать ошибки (из-за декомпиляции)




 
Автор: monah1994, 13 июля 2011 20:49
Группа: Гость
Комментариев: 0
Публикаций: 0
ICQ: --
Автор не я, просто был спрос на данный мануал на форуме вот и скинул сюда




 
Автор: djdiablo, 22 ноября 2011 22:04
Группа: Гость
Комментариев: 0
Публикаций: 0
ICQ: --
Интересно, можно взять много полезного из ядра одной зборки, спасибо!




 
Автор: GoodShadow, 7 сентября 2012 01:25
Группа: Гость
Комментариев: 0
Публикаций: 0
ICQ: --
†DeMoN†™, вообще при компиляции код меняет структуру и некоторые переменные изменяются, код не каким образом не затирается и мы получаем изменённый исходный код.




 
Автор: 1632298, 1 января 2014 22:31
Группа: Посетитель
Комментариев: 39
Публикаций: 0
ICQ: =-=-=-=-=-
когда компилишь ошибок много вылетает и не собирает в *.jar файл((




 
Автор: faginet, 17 ноября 2014 11:32
Группа: Посетитель
Комментариев: 1
Публикаций: 0
ICQ: --
Да да, не компилит. Хоть я и ЯП знаю, но он тупо указывает на какой-то бред.




Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии в данной новости.


Реклама
Популярные новости
Опрос
Используете ли вы "Вход через Вконтакте" на нашем сайте?

Да, конечно
Недавно начал использовать
Нет, у меня уже есть аккаунт

Облако тегов
Архив новостей
Февраль 2019 (4)
Январь 2019 (5)
Декабрь 2018 (4)
Ноябрь 2018 (4)
Октябрь 2018 (4)
Сентябрь 2018 (4)
Реклама

Наверх
Любое копирование материалов сайта строго запрещено!