• ベストアンサー

JADで*.jarごとデコンパイルする方法。

JADで*.jar(または*.jarを解凍した後のパッケージ構成)ごとデコンパイルはできますでしょうか。 今まではクラスファイル1つずつJADコマンドやDJでデコンパイルしていたのですが、今回デコンパイル対象があまりに数が多いため、その方法は採用したくありません。 何か良い方法(またはツール)をご存知の方、ご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

jar xvf test.jar で、解凍して、 jad -o -r -sjava -dsrc **/*.class で、同ディレクトリ以下にある全classのjavaファイルが srcディレクトリ配下に作られます。 2ステップが面倒であればバッチファイルにするとか。 あと、試していませんが、UNIX環境では、 **/*.class → '**/*.class' としないといけないようです。

asdfldfnjsvfs
質問者

お礼

お礼が遅くなってしまいまして申し訳ございません。 ご教示頂いた方法で試してみたところ、上手く出来ました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • パッケージをjarファイルにするには?

    こんばんは。 単一のクラス、1つのフォルダの中にある複数のクラスをjarファイルにする方法は一応わかります。 しかし、パッケージを丸ごとjarファイルにする方法がわかりません。手順だけでも、書いていただければ結構なので、誰かわかる方ご回答のほうよろしくお願いします。 1つのフォルダ内だと、jarファイル作成時にクラス名を書けますが、パッケージとなると、下の階層の中のクラスはどの様に記述すればよいのかわかりません。 よろしくおねがいします。

    • ベストアンサー
    • Java
  • JARファイル・JARコマンドに関して

    JARファイル・JARコマンドに関しての質問です。 同じクラスファイルを使用して、2つのJARファイルを作成しました。 しかし、バイナリツールでファイルを比較したところ、バイナリデータの一致が取れませんでした。 下記に、例と質問を記載します。 ご存知の方がおりましたら、ご教授よろしくお願いします。 例: 1.jar cf C:\java\test\HelloWorld1.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld1.jarというJARファイルを作成します。) 2.jar cf C:\java\test\HelloWorld2.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld2.jarというJARファイルを作成します。) ※HelloWorld.classはhelloと表示されるだけの簡単プログラムです。 1で作成されたJARファイルと、2で作成されたJARファイルをバイナリで比較したところ一致しませんでした。 ■質問 1.JARコマンドはJARファイルを作成する際に何をしているのでしょうか? 2.同じクラスファイルでJARファイルを作成しているのに、バイナリデータに差がでるのはなぜでしょうか? JARファイル作成時に作成時間等をファイルに保持しているのでしょうか? (作成時間が違うため、JARファイルで差がでるのでは、と推測しています・・・・) いろいろ調べてみたのですが、良い情報が見つかりませんでした。 参考URLだけでも結構です。 ご存知の方がいましたら、ご教授よろしくお願いします。m(_ _)m

    • ベストアンサー
    • Java
  • androidのjarファイルにリソースを含めたい

    こちらで質問させていただいたものです。 http://okwave.jp/qa/q7862147.html いろいろ調べてjarファイルを解凍したところ、そもそもjarファイルにR.*系のclassが含まれておりませんでした。 そこでビルドされた*.classを自分でjpフォルダの中にコピーして下記コマンドを実行してみました。 $jar cvf hogefuga.jar jp すると、NoClassDefFoundErrorは発生しなくなったのですが、今度は android.content.res.Resources$NotFoundException: Resource ID #0x7f030001 というリソースが見つからないエラーが発生するようになりました。 ここで本題です。 androidのjarファイルにリソースを含めたいと思っておりますが、どこのフォルダにどのように入れて$jarコマンドを叩けばいいのかわかりません。 フォルダの構成と私が試しているコマンドです フォルダ構成: /root/jp/com/hogefuga/*.class $cd /root $jar cvf hogefuga.jar jp/ 私が試したリソースを含める構成とコマンドは以下です フォルダ構成: /root/jp/com/hogefuga/*.class /root/res/layout/*.xml $cd /root $jar cvf hogefuga.jar jp/ res/ どなたかご存知の方いらっしゃいましたらご教授願えませんでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java
  • JAR内のクラス一覧と、メソッド一覧の取得方法

    業務システム(の作成のためのフレームワーク)を解析することになりました。 ソースコードが手に入るものと、クラスファイルしかないクラスがあります。 JudeをつかってUMLのクラス図にしてみたら、クラス数が多いため文字が小さく読みづらく なってしまいました。各クラスのメソッド一覧とシグネチャがわかればいいので、 クラス図ではなく一覧をテキストで出力するツールを作ろうと思っています。 すると.class や .jarを読む必要があるのですが、J2SE1.4のどのクラスを使うと できるでしょうか。リフレクション?と思ったのですが、ツールの実行時に読み込まれる.class や .jarではないので リフレクションでは無理でしょうか? ヒントだけでもいいのでお願いします。

    • ベストアンサー
    • Java
  • JARファイル

    プログラミングではないのですが、Javaについて質問があります。 JARファイルの関連付けなのですが、エクスプローラーから[ツール]→[フォルダオプション]→[ファイルの種類]→[拡張子'JAR'の詳細]→[詳細設定]で、アクションにJARファイルを解凍するバッチファイルを追加しようとしたのですが、反映されません。(アイコンの変更やファイル名の変更もうまくいかないようです) JAR拡張子の詳細を編集する方法について、何か情報をお持ちの方がいましたら、教えていただけないでしょうか。 ご回答よろしくお願いします。 ※Javaのバージョンは1.6.0_07です。以前1.5を利用していたときは、うまくいきました。他の拡張子の詳細は変更できるので、一般のセキュリティ系のプログラムが保護してるわけではないような気がします。また、[拡張子'JAR'の詳細]→[変更]でプログラム自体を変えてしまうことは可能でした。

  • ch.ntb.usb-5.0.9.jarの使用

    毎度、お世話になります。 javaのusbWrapper(ch.ntb.usb-5.0.9.jar)をdownloadしてます。 そして、このpackageが利用できる様にするために、下記の如くdosコマンドを実行しています。 java -classpath c:\pleiades44\workspace\ch.ntb.usb-5.0.9.jar ch.ntb.usb-5.0.9.jar そこで、下記のエラーが表示されます。 メインクラス:ch.ntb.usb-5.0.9.jarが見つかりません。 なお、usbWrapperに関しましては、http://libusbjava.sourceforge.net/wp/?page_id=8 を 参照しています。 この件に関しましてコメント頂けますと大変助かります。

    • ベストアンサー
    • Java
  • クラスの衝突

    同じパッケージ名で同じクラス名が複数存在した場合 うまく動かなくなるかと思いますが、それを検出する 方法はあるのでしょうか? 考えられる方法は ・貼られてるクラスパスを追っていき重複を探す。 ・貼られてるクラスパスのjarファイルを解凍して重複を探す。 正直この方法だと辛すぎるので 何かいい方法がありましたらよろしくお願いします。

  • Ecliplseでは動作するが、JARファイル実行時には動作しない

    Ecliplseでは動作するが、JARファイル実行時には動作しない WINDOWS(XP)環境にて、 JDK、ECLIPSE共に現在の最新のものを使用してゲームを作成しています。 (jdk1.6.0_21、Eclipse(Ver 3.6)) Eclipse上では実行すると正常に動作しますが、 File>EXPORT>JAVA>JAR fileを使用して、JARファイルを作成すると、 (エクスポート時のウィザード設定は全てデフォルト、 JARファイル保存先とmainクラスのみ指定) 作成したJARファイルは起動するだけで何も処理が始まりません。 (JARファイル自体は作成されるが、実行後フレームだけ表示される) エラーの切り分けなど、方法がわからないため、ここから先に進めないでいます。 例として何かエラーになりうる要素があるとすれば、御教授お願い致します。 また、フォルダ階層が下記のようになっている場合、 コマンドプロンプトからのjarファイル作成は どのようなコマンドになるのでしょうか。 御教授お願い致します。 /******************************************************************************* プロジェクトフォルダ    ?.settings        ?org.eclipse.jdt.core.prefs    ?bin        ?パッケージ名称              ?CLASSファイル、各材料(midi、wav、gif、png、jpg等)    ?src        ?パッケージ名称              ?JAVAファイル、各材料(midi、wav、gif、png、jpg等)    ?META-INF        ?.mfファイル    ?.classpathファイル    ?.projectファイル *******************************************************************************/

    • ベストアンサー
    • Java
  • JAVA .jarファイルに再圧縮するには

    JDK 6-windows-i586をwin XPにインストールしました。 目的は、携帯向けjava アプリのスクリーンサイズを変更したいためです。 .jarファイルを解凍し その中のマニフェストファイル(.mf) を編集し(実際は追加しただけ)、保存しましたが 次のプロセスである再圧縮の方法が良くわかりません。 コマンドプロンプトを使うということはわかるのですが、またpathが通っているとはどういうことなのでしょうか。 勉強不足で初歩的な 質問ですがご指導いただけたらと思います。

  • パッケージとビルドパス@eclipse

    eclipse3.1.2を使ってあるコードを書いています。次にあるのがこのプロジェクトの構造です。 Project: Aaa | default package-いくつかのファイル | aaa-いくつかのファイル | hoge.jar & hoge2.jar(2つのjarファイルはビルドパスで指定した) 質問はどのようにして、package aaa内にあるファイルがhoge.jarもしくはhoge2.jarにあるクラスを継承または実装するのか?です。 この2つのjarファイルに入っているクラスファイルはdefault package内では実装と継承ができるのですが、default package以外のpackageだと、とたんに継承と実装ができなくなります。importを使うのも手かなと思ったのですが、どうやってjarファイルを指定すればいいのかわかりません。 もともと、ビルドパスはdefault packageにしか、効かないのでしょうか? それから、どのようにpackage aaaはこのjarファイルにあるクラスを実装と継承をするのでしょうか? もともと、パッケージを2つ用意する必要も無いのですが、このプロジェクトの都合上、2つパッケージを用意した方が整理整頓できるのでこの方法を選びました。もし、「んな、うまい話なんかねぇよ!」ってことでしたら、この方法を廃止しざるを得ないのですが、どうにか実現する方法は無いでしょうか?

    • ベストアンサー
    • Java