Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как редактировать файлы .Class?

Тема в разделе "[Архив] Помощь", создана пользователем Nightfear, 24 мар 2013.

  1. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    На данный момент я знаю о InClassTranslator что в принципе не поможет проблеме. Он просто удаляет содержимое переменной,а не вывод её самой.

    Таким образом есть программка, которая позволяет просматривать содержимое самих классов т.е. исходник код ява-скрипта: jd-gui .Полезная штука. С помощью её нахожу код, который нужно отредактировать или удалить, но становится вопрос: Как это сделать? Можно ли Eclipc-ом, и как это сделать что бы потом скомпилировать обратно в .class без ошибок?


    Еще есть такая штука как MCP которая распакует за вас весь клиент майна и у вас будет возможность редактировать файлы формата .java с чем Eclipc или любой другой Ide редактор справится без каких либо проблем. Но не так то все просто. Сам по себе MCP не всегда может правильно распаковать и запаковать клиент, т.к. есть множество обстоятельств :

    - Если клиент с модами;
    - Если вы уже что-то правили левыми путями;
    - Если IDE редактору что-то не понравится, то он просто напросто вас пошлет. Возможно это моя недоработка за счет малоопытности в dev-java , но все же.

    В целом нужна помощь старожил в этом плане.
     
  2. Хостинг MineCraft
    <
  3. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    декомпилируешь нужный класс jd-gui, пихаешь содержимое в .java файлик с соответствующим названием, через консоль пишешь javac -cp джарки название.java, где джарки это список джарок с импортированными классами через ; потом смотришь ошибки, исправляешь, и снова javac. потом можешь вносить изменения и снова компилировать.
     
  4. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    хм. Спасибо. Сейчас так и попробую сделать. А на счет Eclipc-а не знаешь? мб есть возможность сделать это через визуальную часть?
     
  5. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    можно просто создать новый проект, в нем создать нужный класс, а используемые джарки подключить как библиотеки
     
  6. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    Вот не до конца все понял. Я декомпильнул файлик. Теперь у меня есть bkg.class в нем есть такое кол-во импортов, их всех надо вписывать в cmd при запросе?
    import com.google.common.base.Strings;
    import com.google.common.collect.Lists;
    import cpw.mods.fml.client.GuiModList;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import java.awt.image.BufferedImage;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.lang.reflect.Method;
    import java.net.URI;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Random;
    import net.minecraft.client.Minecraft;
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.util.glu.GLU;
     
  7. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    В результате :

    Cmd -> javac -cp import com.google.common.base.Strings;
    import com.google.common.collect.Lists;
    import cpw.mods.fml.client.GuiModList;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import java.awt.image.BufferedImage;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.lang.reflect.Method;
    import java.net.URI;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Random;
    import net.minecraft.client.Minecraft;
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.util.glu.GLU; bkg.java
     
  8. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    нет, нужно записать туда имена джарок, в которых эти классы лежат и которые не входят в стандартный набор библиотек. то есть minecraft.jar;lwjgl.jar и так далее.
     
  9. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    Будь прокляты мои познания в яве. Вроде бы что-то читал да и делал.
    Как узнать, какие джарки использует под себя, скажем bkg.java ?
     
  10. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    это по импортируемым классам определяется. классы, лежащие в java.* (и еще некоторые) лежат в стандартных библиотеках, для них ничего не надо писать, по остальным кассам просто смотришь в какой джарке они лежат и вписывешь ее.
    пропиши туда все из папки bin, этого точно хватит чтобы покрыть весь импорт
     
  11. Автор темы
    Nightfear

    Nightfear Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    nightfear
    Не понял о чем вы.
     
  12. Ukranos45

    Ukranos45 Активный участник

    Баллы:
    78
    Skype:
    maksim.kakashi
    Имя в Minecraft:
    Ukranos
    Сори
     
    ВремяПриключений нравится это.

Поделиться этой страницей