как я могу открыть файлы java .class понятным для человека способом?

<p>я пытаюсь выяснить, что файл класса java-апплета делает под капотом. если открыть его с помощью «блокнота» или «блокнота», то это просто клевера.</p><p>есть ли способ вернуть его обратно в несколько читаемый формат, чтобы я мог попытаться выяснить, что он делает?</p><ul> <li>среда == windows w/vs 2008 установлен.</li> </ul>

<p> <a href="http://jd.benow.ca/">jd-gui</a> - лучший декомпилятор на данный момент. он может обрабатывать новые функции в java, по сравнению с пыльной jad.</p>

<p>если вы не против чтения байт-кода, javap должен работать нормально. это часть стандартной установки jdk.</p><pre><code>usage: javap <options> <classes>... where options include: -c disassemble the code -classpath <pathlist> specify where to find user class files -extdirs <dirs> override location of installed extensions -help print this usage message -j<flag> pass <flag> directly to the runtime system -l print line number and local variable tables -public show only public classes and members -protected show protected/public classes and members -package show package/protected/public classes and members (default) -private show all classes and members -s print internal type signatures -bootclasspath <pathlist> override location of class files loaded by the bootstrap class loader -verbose print stack size, number of locals and args for methods if verifying, print reasons for failure </code></pre>

<p>вам нужен java-декомпилятор, вы можете использовать инструмент командной строки <code>javap</code> для этого. кроме того, <a href="http://www.faqs.org/docs/linux-howto/java-decompiler-howto.html">java-декомпилятор how-to</a> описывает, как вы можете декомпилировать файл класса.</p>

<p>использование <a href="http://www.javadecompilers.com/jad">jad</a> для декомпиляции это, вероятно, ваш лучший вариант. если код не был запутан, он даст хороший результат.</p>

<p>что вы ищете, так это декомпилятор java. я рекомендую jad <a href="http://www.kpdus.com/jad.html">http://www.kpdus.com/jad.html</a> это бесплатно для некоммерческого использования и выполняет свою работу. </p><p>примечание: это не сделает код точно таким же, как написано. то есть вы потеряете комментарии и, возможно, имена переменных, так что это будет немного сложнее, чем просто чтение нормального исходного кода. если разработчик действительно скрытный, он также запутывает свой код, делая его еще труднее для чтения. </p>

<p>cpuguru, если ваш апплет был скомпилирован с javac 1.3 (или менее), ваш лучший вариант - использовать jad.</p><p>к сожалению, последний jdk, поддерживаемый jad 1.5.8 (14 апреля 2001 г.), - это jdk 1.3.</p><p>если ваш апплет был скомпилирован с более новым компилятором, вы можете попробовать <a href="http://java.decompiler.free.fr">jd-gui</a> : этот декомпилятор находится в стадии разработки, тем не менее, он генерирует правильные исходные коды java, чаще всего, для классов, скомпилированных с jdks 1.4, 1.5 или 1.6.</p><p>darenw, спасибо за ваш пост. jd-gui еще не лучший декомпилятор ... но я работаю над ним :)</p>

<p>если файл класса, который вы хотите просмотреть, имеет открытый исходный код, вам не следует декомпилировать его, а вместо этого прикреплять исходные файлы непосредственно в вашу среду ide. таким образом, вы можете просто просмотреть код некоторого библиотечного класса, как если бы он был вашим собственным</p>

<p>это скомпилированный код, вам нужно использовать декомпилятор, такой как jad: <a href="http://www.kpdus.com/jad.html">http://www.kpdus.com/jad.html</a> </p>

<p>вам нужно использовать декомпилятор. другие предложили jad, есть и другие варианты, jad - лучший.</p><p>я повторю комментарии, которые вы можете потерять немного по сравнению с оригинальным исходным кодом. это будет выглядеть особенно забавно, если в коде используются обобщения из-за стирания.</p>

<p>как отмечает @michaelmyers, используйте </p><pre><code>javap -c <name of java class file> </code></pre><p>чтобы получить код сборки jvm. вы также можете перенаправить вывод в текстовый файл для лучшей видимости.</p><pre><code>javap -c <name of java class file> > decompiled.txt </code></pre>

<p>jd-gui " <a href="http://code.google.com/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zip&can=2&q=">http://code.google.com/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zip&can=2&q=</a> " - лучший и удобный вариант для декомпиляции .class файла ....</p>

<p>плагин jad и/или jadclipse eclipse, наверняка.</p>

<p>вы также можете использовать доступные онлайн декомпиляторы java. например, <a href="http://www.javadecompilers.com">http://www.javadecompilers.com</a> </p>

<p>нет необходимости декомпилировать applet.class. открытый исходный код классов java api поставляется с jdk (если вы решите его установить) и лучше читается, чем декомпилированный байт-код. вы можете найти сжатый в src.zip (находится в вашей папке установки jdk).</p>

<p>как и предполагалось, вы можете использовать jad для декомпиляции и просмотра файлов. чтобы было легче читать, вы можете использовать плагин jadclipse для eclipse, чтобы интегрировать jad напрямую в eclipse, или использовать dj java decompiler, который намного проще в использовании, чем командная строка jad</p>

<p>jad - отличный вариант, если вы хотите получить читабельный код java в результате. если вы действительно хотите покопаться во внутренностях файла формата <code>.class</code>, вам понадобится <code>javap</code>. он связан с jdk и позволяет вам «декомпилировать» шестнадцатеричный байт-код в читаемый ascii. язык, который он создает, по-прежнему является байт-кодом (не похожим на java), но он довольно читабелен и чрезвычайно поучителен.</p><p>кроме того, если вы<em> действительно </em>хотите, вы можете открыть любой файл <code>.class</code> в шестнадцатеричном редакторе и напрямую прочитать байт-код. результат идентичен использованию <code>javap</code>.</p>

<p> <a href="http://www.benf.org/other/cfr/">cfr - еще один декомпилятор java</a> является отличным декомпилятором для современной java, написанной на java 6.</p>