web-dev-qa-db-ja.com

Macの* .jarファイルからソースコードを抽出する方法

私はとても混乱しています。 * .jarファイルをソフトウェアの一部としてダウンロードしました。それで、私はそれを見るためにソースコードを抽出したいと思います

コマンドjar xf filename.jarを使用しました

さらに2つの*.jarファイルと*.classファイルを返しました。私はまだ標準のテキストエディタでこれらをターミナルで開くことができません。

おそらくこれはオープンソースソフトウェアではないのでしょうか?ここで行われたことを確認する代替手段はありますか?

14
ShanZhengYang

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 ../

16
Brandon

Jarファイルmayにはソースコードが含まれていますが、より一般的にはクラスファイルのみが含まれています。通常、クラスファイルは実行用であり、ソースの抽出用ではありません。

クラスファイルをソースコードに逆コンパイルできますが、逆コンパイルされたコードは元のソースコードほど有用ではありません。

オープンソースの場合は、jarファイルをダウンロードしたサイトに戻り、ソースを探します。ダウンロードするZipファイル、ダウンロードするjarファイル、Gitなどの適切なソフトウェアで接続できるリポジトリにある可能性があります。

1
arcy

簡単な解決策:

Eclipseがある場合、現在のプロジェクトのクラスパスにjarファイルを追加するだけで、jar内のすべてのパッケージとソースコードを表示できます。コマンドをインストールして使用する必要はありません。すべてのファイルをよりよく見ることができます