質問

実際には、質問は少し幅です。 javacがJavaファイルをByteCode、クラスファイルにコンパイルすることを知っています。そのため、クラスファイルにはJVMの命令が含まれている必要があります。一方、これらの命令を確認する唯一の方法は、クラスファイルをjavap -cで偏置することです。しかし、それは分解されていません、正しいですか?それが分解された場合は、Javaファイルを生成します。そのため、Javacは2回(実際には真実ではないが、簡単にするために)、次にByteCodeからJVM -Cへのjavap命令からJavap -cへのjavap -cをjavaファイルにコンパイルすることです。JVMはバイトコードを理解することになっているため、指示がわかりません。私はここで少し混乱しています。誰かがここで何が起こっているのかを説明できましたか?

役に立ちましたか?

解決

javapは decompile ではありません disassembles 違いを説明するために、私たちはその他の方法を回転させることができます。

他のヒント

javapは、人間の読みやすい形式のJVM命令を表示します。JVM命令はJVMのコードです。javapが示すものはアセンブラ言語です。

バイトコードをより読みやすい形式で確認したい場合は、Java Decompilerを使用してください。 jad 。Eclipseのプラグインを含むJAD用のいくつかのUIラッパーがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top