Как декомпилировать файл Java .class из rt.jar

Я извлек файл .class из файла rt.jar в jre1.7 и попытался открыть его с помощью блокнота ++, однако он не читается. Как я могу декомпилировать файл .class в файл .java, чтобы просмотреть код?

Обратите внимание, что меня интересует декомпиляция кода, а не просмотр исходного кода, предоставленного в загрузках JDK.


person love with java    schedule 12.04.2012    source источник
comment
Почему бы вам не использовать исходный zip-файл, который поставляется с JDK?   -  person Jon Skeet    schedule 12.04.2012
comment
Обратитесь к этому вопросу: stackoverflow.com/questions/4379050/   -  person alxbrd    schedule 12.04.2012
comment
@Mr.Skeet, при всем уважении, вы предоставляете альтернативу решению. Но я спрашиваю, есть ли способ декомпилировать файл .class в файл .java.   -  person love with java    schedule 12.04.2012
comment
Зачем вам декомпилировать файл .class, если вы можете просто открыть исходный файл .java, который использовался для его сборки, как предложил @JonSkeet?   -  person wattostudios    schedule 12.04.2012
comment
@saurabhRai: В большинстве случаев, если у вас нет доступа к исходному коду файла класса, вы попадаете в сложную юридическую территорию, если начинаете его декомпилировать, в зависимости от вашей правовой юрисдикции. Зачем вам влезать в это, если вам действительно нужен доступ только к исходному коду, который уже доступен? Обратите внимание, что настоящий исходный код будет легче читать, чем декомпилированный код, из-за комментариев и т. д.   -  person Jon Skeet    schedule 12.04.2012
comment
@WATTO просто из любопытства, я хочу узнать, как декомпилировать файл .class в файл .java.   -  person love with java    schedule 12.04.2012
comment
@Г-н. Скит, поскольку я новичок в Java, поэтому мне просто было любопытно узнать процесс декомпиляции, ничего больше. Теперь я думаю, что мне следует перестать думать в этом направлении и сосредоточиться на других необходимых вещах, связанных с Java. В любом случае, спасибо за ваш ответ и предложение.   -  person love with java    schedule 12.04.2012


Ответы (4)


Как сказал @Jon Skeet, используйте не JRE, а JDK, который содержит весь исходный код. Если вы по каким-то причинам настаиваете на своем подходе, то рекомендую JD-GUI для декомпиляции .

person Marko Topolnik    schedule 12.04.2012

.class файлы — это скомпилированные двоичные файлы. Вы не можете прочитать код Java из них, но вы можете запустить их. Если вы хотите увидеть исходный код, вам обычно нужны .java файла. Они либо упакованы в ту же банку, но затем в папку src, либо их можно загрузить в отдельном пакете.

person Joost    schedule 12.04.2012

Вы можете использовать любой инструмент декомпилятора, такой как cavaj, для декомпиляции class файл в исходный код (файл java). Я использую его, и он отлично работает.

person Kamal Nayan    schedule 29.11.2015

Попробуйте любой из перечисленных здесь декомпиляторов:

Или используйте онлайн-декомпилятор - http://www.javadecompilers.com/

person Andrew Rukin    schedule 12.12.2015