• ベストアンサー

Classファイル → Javaソースプログラム

どーも、こんにちは。プログラミング初心者です。 現在Javaを使ってプログラムをしています。 JavaはJavaソースをコンパイルするとClassファイルが生成されるじゃないですか? では逆に、ClassファイルからもとのJavaソースプログラムに変換する(?)、取り戻すことはできないのでしょうか??? もしかして無理なのかもしれませんが、これが出来ないとどうしていいか分かりません。 どうしても、ソースプログラムが見たいClassファイルがあるのです。 そんな状態なので困っています。 どなたか少しでもご存知の方は、ご一報ヨロシクお願いします!!

  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
noname#49664
noname#49664
回答No.2

プログラムからソースコードを生成するのを「デコンパイル」といいます。そのためのプログラムを「デコンパイラ」といいます。  現在は、Jadの他にJodeなどのデコンパイラが出ていますし、Jadの応用ソフトもいろいろあるようです。デコンパイラで検索してみるといろいろと見つかりますよ。

参考URL:
http://allabout.co.jp/career/java/closeup/CU20051206B/index.htm

その他の回答 (1)

  • __orz
  • ベストアンサー率44% (12/27)
回答No.1

Jadが入手できれば*ある程度*は復元できると思いますよ。 下記記事を参考にしてみてください。 「Eclipseで逆コンパイルを行う」 http://www.atmarkit.co.jp/fjava/javatips/073eclipse025.html コンパイルオプションでソースコードを含めるようにしてあれば、普通に見られたりしますが。# 普通は含めないので、望み薄だとは思いますが。

関連するQ&A

  • classファイルを元に戻す

    javaを勉強しているものなんですが、 一度コンパイルをしてできたclassファイルから もとのソースファイルを取り出す(元に戻す)ことは できるのでしょうか? なんとなく気になったもので。誰かお願いします!!!!

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

    プログラムを書いて、コマンドプロンプト上でコンパイルとしたところエラーが表示されたのですが、.javaとかかれたソースファイルのあるフォルダに.classというファイルが出来るのはなぜですか?エラーが発生したのでコンパイルは失敗したのですが。お願いします。

    • ベストアンサー
    • Java
  • javaのソースとclassファイルの単位について

    最近JAVAの勉強を始めました。 基礎的なことで恐縮ですが、JAVAのコンパイル単位を知りたいのですが。 一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか? 一つの*.javaファイルから、複数個のclassファイルができたり、複数の*.javaファイルから 一つのclassファイルができたりはしないんでしょうか? まだ、一つの*.javaから一つのclassファイルを作ったことしかないので、 申し訳ないですが、どなたか教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVA 別のプログラムを操作する

    JAVA初心者です。 JAVAで、例えばsample1.classを実行すると、 sample2.javaがコンパイルされる・・・。 というような、実行すると他のプログラムをコンパイル するようなプログラムはどのように書けば良いでしょうか?? ご教授お願いいたします。

  • コンパイルした後 java (classファイルの名前) が実行できない

    すみません。本当につまらない質問かもしれませんが コンパイルまではDOS窓でできるんですが。できたCLASS ファイルを java (できたclassファイル名) を実行しよう としても、 Exception in thread "main" java.lang.NoClassDefFoundError: (できたファイルの名前) と表示されてしまい、まったく実行できません。 これはどうしたら実行できるのでしょうか? なお、最新版のSDKとJava 2 Runtime Environmentはインストールしています。 どうかお願いします。

    • ベストアンサー
    • Java
  • .javaや.classのアイコンを変えたいのですが

    お疲れ様です。 Javaの開発を行っていると .javaや.classファイルのアイコンが どうもつまらなくて、 アイコンを変更したいと思っているのですが。 普通.javaはテキストファイルと 同じアイコンですよね。 ツールは"拡張子から行こう"でいいと思っています。 なにかいいアイコンってありませんかね。 以上、よろしくお願いします。

  • 優秀なJavaソースコードを教えてください!

    はじめまして。質問させていただきます。 フリーで優秀なJAVAソースコードはどこかからダウンロードできませんか? Javaの勉強を始めるのですが、 優秀なJAVAソースコードから学習したいと考えております。 できればプロジェクトごと丸々欲しいです。 というのも、以下のような部分も同時に学習したいと思っています。 ・どのように命名するか ・どのような機能ごとにファイルを分けているか ・propertiesファイルやtxtファイルやxmlファイルなどの使いどころ ・DBとの絡ませ方 ・どのようなくくりでjarファイルにするか ・etc □参考□□□□□□□□□□□□□ ■私のスペック■■■■■■■■■ ・プログラミング経験3年 ・Java経験4ヶ月 ・ソース読むだけだけなら多少難しくても問題なし ■学習法■■■■■■■■■■■■ ご教示いただいたソースから構造を真似つつ自分の欲しいアプリを作成します。 □□□□□□□□□□□□□□□□ おすすめのJavaソースがございましたら、 ダウンロードページをご教示していただければ嬉しい限りです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • classファイル内の変数名について

    2つのclassファイルをそれぞれ逆コンパイルして内容を確認したところ、 以下のように、それらしい変数名と機械的に振られたような変数名になっていました。 ・A.class → A.java  String atai = "aaa"; ← 元のプログラムと同じ変数名(atai)   ・B.class → B.java  Stinrg s1 = "aaa"; ← 機械的に振られている変数名(s1) コンパイル方法の違いで変数名が機械的になってしまうことがあるのでしょうか。 作業担当者が居なくなってしまって、当時の状況を確認することができません。 多分、同じソースファイルのはずなのですが、本当に同じ内容なのか 比較したいのに、微妙な違いがあるため比較ができなくて困っています。 引数も微妙に違っているようなので、それらしい変数名か機械的なものか どちらかに統一させてデコンパイルする方法があったら教えてください。 また原因も知りたいです。 アドバイスをお願いします。

    • ベストアンサー
    • Java
  • ソースファイルの名前=クラスの名前?

    java初心者です。よろしくお願いします。 「javaのソースファイルの名前とクラスの名前は一致させる」という記述を入門書の最初の方では必ず書いてあるのですが、もう少し読んでいくと一つのソースファイルの中にいくつかクラスを作るという段階になると思うのですが、これは「public class」のクラスの名前をソースファイルの名前と一致させるということでしょうか?(つまり、public classは一つのソースファイルに一つしか書かない、ということでしょうか?) 多分違うような気が何となくするのですが、頭がこんがらがっています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • macのSimpleTextで書いたJavaソースをコンパイルしたいんですけど…

     java初心者です。javacでコンパイルするのはなんとなくわかったんですが、どうやるんですか?macのSDKは英語版だけしかないらしく、説明文を解読するのは私には無理。書店で参考書を見たがどれもwinを対象にしたものばかり。sinpletextで書いたソースをjavacの上にクリックドラッグして持ってくとjavacのパレットが出てきたが、いろいろ試してもエラーのログが出てくるだけ。ソースはとても短い文なので入力ミスはないはずなんですけど…。    一応、今一冊「愛と青春のjavaプログラミング」という本を持ってるんですが98年のもので、そこにはmac版JDKはsunのページからダウンロードできると書いてあるんですが、現在では無くなってしまってるらしいので本の内容は参照できません。 だれかmacを対象にした初心者むけのjava参考書(最近のもの)、もしくはサイトを知りませんか?

    • ベストアンサー
    • Java