Часто у новичков, а порой и у бывалых программистов возникают детские вопросы. К такой категории можно отнести вопрос как декомпилировать в java или как установить java декомпилятор? Поэтому данная статья нацелена на ликвидацию вопросительных знаков над темой java-декомпиляторов.
Самое первое, что узнает человек при работе с Java - то что весь программный код (содержится в файлах *.java) после компиляции превращается в байт-код (содержится в файлах *.class), который уже и попадает на выполнение в JVM. Предыдущее предложение описывает идеальную ситуацию, однако бывают случаи, когда человек пишет на Java, при этом даже не подозревая об этом, но не будем о грустном.
Итак, декомпилятор вам понадобится только в том случае, если у вас нет исходных файлов (*.java), а имеются в наличии лишь бинарники (*.class). В случае, если у вас на момент прочтения это статьи, Eclipse IDE не оснащена декомпилятором, то можно рассмотреть следующий пример:
1: public class Testoid {
2: public static void main(String[] args) {
3: Boolean bool = true;
4: }
5: }
Теперь попробуйте скопировать это все к себе в Эклипс и передать курсор в строку №3, классу Boolean, после чего нажмите на клавиатуре кнопку F3. В результате должна открыться новая вкладка с именем Boolean.class и наполнением вроде такого: Source not found...
Проблема теперь стала более ясной, даже очевидной. Для ее решения, а если более конкретно, то для просмотра исходного кода класса Boolean, нам понадобится установить java-декомпилятор и повторить попытку.
Существует множество декомпиляторов, но я буду говорить о том, которым пользуюсь сам - JD. По этой же ссылке можно увидеть инструкции по установке, но на английском языке. Если в комментариях будут просьбы сделать такую же инструкцию, только на RUS, то я скорее всего откажу, т.к. дублировать нет смысла, да и английский всем рекомендую учить.
После установки (надеюсь удачной), возвращаемся к ранее опубликованным 5 строкам кода и проделываем те же не хитрые манипуляции с классом Boolean в строке №3. Результатом должна стать новая вкладка с именем Boolean.class с наполнением:
1: package java.lang;
2: import java.io.Serializable;
3: public final class Boolean
4: implements Serializable, Comparable<Boolean>
5: {
6: public static final Boolean TRUE = new Boolean(true);
7: public static final Boolean FALSE = new Boolean(false);
8: public static final Class<Boolean> TYPE = Class.getPrimitiveClass("boolean");
9: private final boolean value;
10: private static final long serialVersionUID = -3665804199014368530L;
11: public Boolean(boolean paramBoolean)
12: {
13: this.value = paramBoolean;
14: }
15: public Boolean(String paramString)
16: {
17: this(toBoolean(paramString));
18: }
19: ...
По большей мере это все, что нужно было написать для хорошего старта. Далее все зависит от вашего интереса и потребностей.

Комментариев нет:
Отправить комментарий