• ベストアンサー

jar内のclassファイルについて

jarファイル内のclassファイルをデコンパイルしてスクリプトファイルやイメージファイルを復元する方法を教えてください。お願いします。

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

文面からは、 ------------------------------------------------------------ ・ classファイルをデコンパイルしたいのか ・ jarファイルを解凍して、中のファイルを取り出したいのか ------------------------------------------------------------ が定かでありません。 デコンパイルの場合、hal_n様の言われるように、ツールjadをお勧めします。 解凍は、jarコマンドでも出来ます。 --------------------------- jar xvf jarファイル名 --------------------------- で、OKです。ヘルプは、 jar --help で見れます。javaファイルが含まれているかどうかは、圧縮のときに加えたかどうかによります。

homma
質問者

補足

回答ありがとうございました。説明が足りなくて申し訳ありませんでした。jarファイルの解凍はできたのですがclassファイルの逆コンパイルの方法がわからなくて質問しました。しかし、おかげさまで無事逆コンパイルすることができました。ありがとうございました。ついでに室もですがjadで逆コンパイルすると拡張子がjadになるのは逆コンパイラーの機能でしょうか。教えてください。

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

その他の回答 (1)

  • hal_n
  • ベストアンサー率43% (7/16)
回答No.1

見当違いかもしれませんが、以下参考になりますでしょうか。 基本的に、JAR = ZIP なので、JARファイルの拡張子をZIPに変えて解凍ソフトで中身を取り出す。 クラスファイルのデコンパイルには、JADをお使いください(参考URL)。

参考URL:
http://www.kpdus.com/jad.html
homma
質問者

お礼

早速の回答ありがとうございました。JAVAに関しては始めたばかりで中途半端な知識しかなく申し訳ありませんでした。しかし、おかげさまで無事classファイルを逆コンパイルできました。大変ありがとうございました。

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

関連するQ&A

  • jarファイルをデコンパイルして編集する

    マイクラのjarファイルを 編集しようと思い いろいろソフトを探しましたが jd-gui で デコンパイルできるまではできましたが 直接編集することができません jarファイルを編集する ide環境はないでしょうか? ちなみにテキストでコピペしてWINRARなどで差し替える方法はわかってます

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

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

    • ベストアンサー
    • Java
  • classファイルとJARファイルで実行した出力が異なる

    Javaのコマンドラインツールです。 CLASSファイルのままで実行 C:\> java -classpath .;mail.jar;activation.jar Mailx すると正常な出力が得られるプログラムをJARファイルにして C:\> jar xvf activation.jar C:\> jar xvf mail.jar C:\> jar cfm Mailx.jar Mailx.mf *.class com javax C:\> jar tvf Mailx.jar 実行 C:\>java -classpath Mailx.jar Mailx すると、正常な出力が得られなくなり、メールアドレスが出力されるはずが、メモリのアドレスのような値が出力  javax.mail.util.SharedByteArrayInputStream@1bf52a5 されるようになります。 なぜなのでしょうか? <Mailx.mf> Manifest-Version: 1.0 Main-Class: Mailx

  • 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
  • jarファイル内のクラスからjarファイル名の取得

    こんにちわ!yukimura1024です。 ちょっとわかりにくいタイトルかもですが質問です(^^; ○前提条件 1.コマンドプロンプトで以下のようにjarファイルを実行します。  java -jar xxx.jar xxx1 xxx2 2.xxx.jarのなかはx.class、y.class、z.class、と3つのクラスがあり、   x.classのmainメソッドが最初に呼び出されます。 ○質問 上記条件のとき、x.classのmainメソッド内で「xxx.jar」という文字列を取得したいのですが こんなことは可能でしょうか? なぜこんなことをしたいのかというと以下の理由からです。 1.xxx.jarのほかにyyy.jarというjarファイルも作成し、x.class、y.class、z.classを格納する。 2.yyy.jarも最初にx.classのmainメソッドが呼び出される。 3.x.classのmainメソッド内でxxx.jar、yyy.jarのどちらとして呼び出されたのか知りたい! ※2つのjarファイルに格納するx.class、y.class、z.classはまったく同じものです。 アドバイスいただける方いましたらお願いします。

    • ベストアンサー
    • Java
  • 実行可能jarファイルについて!

    実行可能jarファイルについて! java -jar Foo.jar Foo というやり方で、実行可能jarファイルにあるクラスの中から実行するクラスを指定できるという記述があったので、試してみたのですが、うまくいきません。 http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/java_primer/ExecutableJarfile.html どうしても、マニフェストファイルに書かれたクラスが実行されてしまいます。 マニフェストファイルはこちらの内容になります。 Manifest-Version: 1.0 Rsrc-Class-Path: ./ geronimo-jta_1.1_spec-1.0.jar s2-dao-1.0.49.jar co mmons-logging-1.1.jar poi-3.0-FINAL.jar aopalliance-1.0.jar s2-dao-ti ger-1.0.49.jar junit-3.8.2.jar teeda-core-1.0.13-sp7.jar geronimo-ser vlet_2.4_spec-1.0.jar cglib-nodep-2.1_3.jar s2-extension-2.4.40.jar s 2-tiger-2.4.40.jar easymock-2.4.jar teeda-webunit-0.2.2.jar teeda-aja x-1.0.13-sp7.jar teeda-tiger-1.0.13-sp7.jar ojdbc6.jar easymockclasse xtension-2.4.jar commons-lang-2.4.jar javassist-3.4.ga.jar teeda-xmlu nit-0.1.0.jar log4j-1.2.13.jar teeda-extension-1.0.13-sp7.jar ognl-2. 6.9-patch-20090427.jar junit-4.4.jar junit-addons-1.4.jar s2-framewor k-2.4.40.jar h2-1.0.69.jar Class-Path: . Rsrc-Main-Class: jp.co.tsys.sfi.batch.execute.TagOutputExecute Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader jarファイルは、Eclipseの実行可能jarファイルの出力で、エクスポートしました。 よくみると、Main-ClassがEclipseのクラスになっているので、そこが違うのかな、と予想しています。 なぜ、Eclipseのエクスポートを使っているかというと、ライブラリのjarファイル群をjarファイルに取り込むのに便利だと思ったからです。 →これさえできれば、ほかの方法で構いません。 どうかよろしくお願いします!

    • ベストアンサー
    • Java
  • jarファイルの起動方法

    クラスファイルと画像をjarファイルに固めてクリックで起動したいのですができません。正確に言うと、最初の2~3回はできていたのですが、何回かプログラムを修正せいているうちにjarに固めてクリックしても起動しなくなりました。  マニフェストファイルは、 Main-Class: MainWindow(この後改行) です。 jarファイルへの固め方は、testフォルダにclassファイルと画像ファイルがあるものとして、 cd C:\test C:\j2sdk1.4.2_05\bin\jar cf kakei.jar *.class *.PNG C:\j2sdk1.4.2_05\bin\jar ufm kakei.jar manifest.txt です。 プログラム内の画像のロード方法は、 MediaTracker tracker=null; Image images=null; try{ tracker=new MediaTracker(this);//画像の取り込み tk=Toolkit.getDefaultToolkit(); URL img=getClass().getResource("img1.PNG"); images=tk.createImage(img); tracker.addImage(images,0,93,28); } catch(Excetption e){} 最初の2~3回はこの方法できちんと実行できました。また、ほかのアプリケーションもこの方法でやっていましたがうまくいきます。画面にまったく表示されませんが実行後にjarファイルを削除できないので おそらく実行はされているのだと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • JARファイル内でのファイルの作成

    JARファイル内に格納されたクラスファイル(MainWindow.class)を実行して、同じJARファイル内にバイナリファイル(DataFile.bin)を作成したいのですがどのようにしたらよいでしょうか。  JARファイル内のクラスファイル(MainWindow.class)に記述された、randomAccessFile(string,"rw")命令によって、MainWindow.classが格納されているのと同じJARファイル内にDataFile.binを新規作成したいと思っています。  ちなみに、作成したファイルは、 URL url=null; url=getClass.getResource("DataFile.bin")で呼び出したいと思っています。  インターネット等で検索しているのですが、なかなか見つからなくて困っています。すみませんがどうかよろしくお願いします。

    • ベストアンサー
    • Java
  • jar ファイルに追加する方法

    Java初心者で勉強中です。 既にあるjarファイルにあるclass を追加する方法ってあるのでしょうか? (1)例えば、garoon3api.jar に Hello.class を追加する場合はどうすればよいのでしょうか? (2)garoon3api.jarは、 garoon3api.jar       |----com        |----cybozu        |-----garoon3        |-----usecase のようになっていて、 usecaseの下に Hello.class を追加する方法はあるのでしょうか? ネット等で調べてはいるのですが、うまくいかず困っています。 どなたかよろしくお願い致します。

    • ベストアンサー
    • Java
  • 実行可能jarファイルのファイル名取得

    javaの実行可能jarファイルの中で、そのjarファイル名を取得する方法はどうすればよいでしょうか? なお、クラスファイル名は次の方法で取得できています。 public class AAA { public static void main(String[] args) { System.err.println( AAA.class.getResource("AAA.class").toString()); } } 2011年10月16日

    • ベストアンサー
    • Java