.jarファイルからソースコードを抽出する


172

実行可能な.jarファイル(Java ME)からソースコードを抽出する方法はありますか?


3
ただし、jarの著作権を所有しているかどうか、住んでいる国、およびそれを行う目的によっては、これを違法とする場合があることに注意してください。
リチャード

2
オープンソースの場合は、開発者から入手してください。それ以外の場合は、「EULAへの準拠が認められます」。
Andrew Thompson

procyonデコンパイラーを確認してください。jarファイルを逆コンパイルするには、jarをダウンロードします。以下の手順を実行しました
nitin angadi

回答:


146

使用JD GUI。アプリケーションを開き、JARファイルをアプリケーションにドラッグアンドドロップします。


6
JD GUIなしで.jarからソースコードを取得する方法はありますか?
Zulqurnain Jutt

@elachanceの回答で述べた@ZulqurnainJuttの使用jar xf filename.jar
Arvind Sridharan '14

46

次のコマンドでjarファイルを抽出できます。

jar xf filename.jar

参考資料:OracleのJARドキュメント


18
これは、名前を変更filename.jarしてfilename.jar.zip解凍するのと同じです。
Mathias Bynens、2014年

27
これはソースコードを抽出しません。コンパイルされたソースコードを抽出します。
0xcaff 2015

5
@caffinatedmonkeyは、jarにjavaファイルが含まれている場合にソースコードを抽出します。たとえば、通常「-sources」で終わる名前のjarなどです。実際、jarにJavaソースファイルが含まれていない場合、.classファイルのみが抽出されます。
edwardmp、2016年

37

これは非常に簡単にできると思います。jarファイルのソースファイル(Javaファイル)はいつでもzipに抽出できます。

jarファイルのソースをzipとして取得する手順:

  1. JADをhttp://techieme.in/resources-needed/からダウンロード
    し、システムの任意の場所に保存します。
  2. ソースが必要なjarをJADにドラッグアンドドロップします。3 JAD UIが開き、すべてのパッケージ構造がツリー形式で表示されます。
  3. [ファイル]メニューをクリックし、[jarソースの保存]を選択します。
  4. ソースと同じ名前のzipとしてソースを保存します。

お役に立てれば。

何らかの理由でリンクが無効になっているため、JDGUIをダウンロードできる場所からリンクを追加します


1
@Nitesh ...私は自分のウェブサイトでホストされているリンクを投稿します...そこからダウンロードしてください
dharam

4
techiemeリンクのバージョンは美しく機能します。ありがとうございます。
DerStrom8 2015

29

JARにはソースとjavadocが含まれている場合があります。その場合は、jar xf my.jarそれらを使用して抽出できます。

それ以外の場合は、adarshrの回答で述べたように逆コンパイラを使用できます。

使用JD GUI。アプリケーションを開き、JARファイルをアプリケーションにドラッグアンドドロップします。


21
.jarファイルは実際には.zipファイルであり、任意のZIPツールで開くことができることに注意してください。
Chris Nava

11

私はそれが古い質問であることを知っていますそれでも誰かを助けると思った

1)jarファイルのフォルダーに移動します。

2)拡張子を.zipに変更します。

3)準備完了です。ダブルクリックするだけで簡単に抽出できます。

注:私はこれをMACでテストしましたが、動作します。うまくいけば、それはwindowsでも動作します。


2
@JCodex、私は感情分析ツール「opinionfinder」の研究プロジェクトをやっていて、そのjarファイルには確かにJavaとクラスファイルの両方が含まれています。だからあなたのコメントは100%真実ではありません。通常は.classのみが含まれますが、この場合は含まれません
wired00

2
ソリューションでは、ソースコードではなく.classファイルのみが抽出されます。
CarlosSáSep

JD-GUIは、実際にコードを逆コンパイルし、すべてのパッケージのクラスのソースコードを表示するマルチプラットフォームツールのようです。私はそれを試しました、そしてMacOSでソースコードを一瞬で得ることができました。Java 8がインストールされています。jd.benow.caで取得できます。大規模なプロジェクトで機能するかどうかはわかりません。
カルロスSá

1
あなたが説明した方法で提供されていないソースコードが必要
chiragchavda.ks '28

3

Javaが動作するLinuxボックスで次の手順を実行します(端末の処理方法が好きな場合)。

cd ~
mkdir decompiled_code && cd decompiled_code
wget https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.36.jar
java -jar procyon-decompiler-0.5.36.jar /Path/to/your/jar -o .

:@Richardがコメントしたように、「これは、jarの著作権を所有しているかどうか、住んでいる国、およびそれを行う目的に応じて、違法となる場合があります。」


特定のクラスファイルについては、java -jar procyon-decompiler-0.5.36.jar package / of / the / java / class.class> className.javaを実行できます
nitin angadi


-2

上記のツールはjarファイルを抽出します。また、jarを抽出するための特定の他のツールとコマンドもあります。ただし、コードが難読化されている場合、AFAIKではJavaコードを取得できません。


7
最大の答え
fnc12

-6

JARファイルがC:\ Documents and Settings \ mmeher \ Desktop \ jarにあり、JARファイル名がxx.jarであるとすると、コマンドプロンプトで次の2つのコマンドを記述します。

1> cd C:\ Documents and Settings \ mmeher \ Desktop \ jar

2> jar xf xx.jar


-6

-.jarファイルを.zipに変換します(Windowsでは拡張子を変更するだけです)-.zipフォルダーを解凍します-完全な.javaファイルを取得します


3
この方法についてのちょっとしたメモとして... jarファイルが空想的なzipファイルであることは事実です。ただし、jarを解凍すると、*。classファイル、つまり「コンパイルされた」javaファイルが生成される可能性が高くなります。クラスファイルを通常のJavaファイルに「逆コンパイル」することが可能です。この機能は多くのIDEに含まれています
Daniel Hernandez

これにより、クラスファイルのロックが解除されます
Harshil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.