私はとても混乱しています。 * .jarファイルをソフトウェアの一部としてダウンロードしました。それで、私はそれを見るためにソースコードを抽出したいと思います
コマンドjar xf filename.jar
を使用しました
さらに2つの*.jar
ファイルと*.class
ファイルを返しました。私はまだ標準のテキストエディタでこれらをターミナルで開くことができません。
おそらくこれはオープンソースソフトウェアではないのでしょうか?ここで行われたことを確認する代替手段はありますか?
「Java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar
」を実行します
これがIntelli-JとAndroid-Studio Decompilerの機能です。
注:Fernflowerは.Java
ファイルを.jar
ファイルに抽出します。 jarファイルを通常のZipファイルとして解凍できます(OSXのArchive Utility
のバージョンで許可されている場合-OSX Sierraでは動作しませんが、El Capitanでは動作します)OR jar xf DecompiledJar
を実行すると、抽出されます。
例(すべて1つのコマンドで-&&
で区切られた複数のコマンド):
Java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar && cd DecompiledJar && jar xf DecompiledJar.jar && cd ../
Jarファイルmayにはソースコードが含まれていますが、より一般的にはクラスファイルのみが含まれています。通常、クラスファイルは実行用であり、ソースの抽出用ではありません。
クラスファイルをソースコードに逆コンパイルできますが、逆コンパイルされたコードは元のソースコードほど有用ではありません。
オープンソースの場合は、jarファイルをダウンロードしたサイトに戻り、ソースを探します。ダウンロードするZipファイル、ダウンロードするjarファイル、Gitなどの適切なソフトウェアで接続できるリポジトリにある可能性があります。
簡単な解決策:
Eclipseがある場合、現在のプロジェクトのクラスパスにjarファイルを追加するだけで、jar内のすべてのパッケージとソースコードを表示できます。コマンドをインストールして使用する必要はありません。すべてのファイルをよりよく見ることができます