classファイルをjavaファイルへ戻すことってできるんでしょうか?
もしできるのなら、やり方をお教えください。

A 回答 (2件)

Javaの逆コンパイラを使えば、ある程度復元することは


できます。

参考URL:http://www.javacats.com/JP/articles/decompiler2. …
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速、ご紹介のHPを見てみました。
まだ、詳しく見てないのですが役に立ちそうです。

お礼日時:2001/04/19 22:08

基本的に無理です。



まず、ソースに書かれたコメントは、コンパイルされたファイル (.class)には
反映されません。

また、コンパイルされるときに、最適化という処置を行います。
多少(処理的に)無駄なコードを書いても、コンパイラが頑張って
実行速度が速い、または、ファイルサイズが小さい結果を吐き出そう
と頑張ります。

つまり、元の情報に、コンパイラが手を加えるわけですから、
元のソースの状態に戻すことができなくなります。
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。
最適化されれば、元どおりにはなりませんね。
それでも解読できる程度のソースが
見れればと思っていました。

お礼日時:2001/04/19 22:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「古い圧縮ファイル」の確認方法

Dドライブのディスクのクリーンアップをしたいのですが、実行できるものが、「古い圧縮ファイル」の削除しかありません。

「古い圧縮ファイル」がどのプログラムかを確認する方法を教えてください。

また、圧縮されたファイルの名前は青くなるらしいのですが、見つかりません。どうしてでしょうか
圧縮ファイルは1G弱あります。

Aベストアンサー

http://www.atmarkit.co.jp/fwin2k/win2ktips/106cleanup/106cleanup.html

初期設定では、50日以上アクセスの無かったファイルに対して、圧縮が行われます。
当然、圧縮してからでないと、ファイル名は青色にはなりませんので、ディスク・クリーンアップでの候補段階では、黒色のままです。


尚、設定によっては青色表示にならない場合も有りますけど。

http://121ware.com/qasearch/1007/app/nec.jsp?005084

Qclassファイルを元に戻す

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

なんとなく気になったもので。誰かお願いします!!!!

Aベストアンサー

完全には無理ですが、
javapコマンド
でできます。
コマンドについての詳細はJavaのドキュメントを参照して下さい。
javap -help
でヘルプも出ます。

他にもきっと逆コンパイルするツールなどあると思います。

あとは自分で作ったものなら構いませんが、
フリーのツールのクラスでも、逆コンパイルすることはライセンス違反になることもあるようなので、そこら辺は充分気をつけて下さい。

Qファイルの圧縮方法

AVIやMPGの画像ファイルを圧縮する方法を教えてください。900mb位のファイルをCD-Rに落とし込める700mbまで圧縮したいんですが。できれば、zipやlzhなどの後で解凍しなくてはいけないような圧縮方法ではなく、多少画像が荒くなってもファイルを単純に縮小させるような方法を教えていただけると有り難いのですが。。
因みに、TMPGEncを試してみたんですが、どうもうまくいかなくて。。ファイルサイズが元のファイルより逆に大きくなってしまうんです。
すいませんが、宜しくお願いします。

Aベストアンサー

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450 450 くらいでカット。
対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331
ではでは!

追伸
カンタンにならrmファイルに変更かなあ
でも画質は落ちますよ
ネット配信 ストリーミング形式でどぞ!
RealplusG2とかRealEncoderで変換
でもaviでもないしmpegでもないですけど、どお?

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450...続きを読む

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

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

Aベストアンサー

1. .classまでクラスファイル名つけてませんか?
2. カレントディレクトリがclassファイルのある場所にあるかまたはクラスパスがclassファイルのある場所に追加されていますか?
3. クラスファイル名間違ってませんか?
4. CLASSPATHを設定した場合、.(現在のディレクトリ)を指定していますか?
5. 2番目の回答者の方と同じです、ファイル名とクラス名一致してますか?

JDKが古いバージョンの物も必要というのはちょっと聞いたことがないですが・・・。

Qファイルの圧縮方法が解りません

窓の杜やベクター等に置かれている、フリーの圧縮、解凍ソフトをダウンロードしていますが、テキストファイルや、画像ファイルの圧縮方法が解りません。何方か教えて頂けませんか?

Aベストアンサー

ソフトの開発者のサイトで質問することをお奨めします。

ソフトごとに操作方法が異なりますので、使用しているソフト名すらない状態では誰も必要とする回答を出せません。

窓の杜やベクターでは開発者のサイトへのリンクがありますから、そこからアクセスできますよ。

Qjava の *$1.class ファイルについて

最近、JDK を使っていて思ったのですが、javac でコンパイルしたときに
変わったクラスファイルがでてくるのですが・・・
たとえば、
MainFrame.class の他にMainFrame$1.class
があったりします。
これがないと実行できません。
これはいったいなんなんでしょうか?
どうか、教えてください。
お願いします。

Aベストアンサー

 MainFrame.javaの中でanonymous class(無名クラス/匿名クラス)を定義していますね?

 Javaには「一つのクラス定義=一つのクラスファイル」という原則があります。

 MainFrame.javaの中で複数のクラスを定義しているわけですが、anonymous classは「$」が付いたクラスファイルになります。

参考URL:http://www.geocities.co.jp/SiliconValley-Oakland/4287/java49.html

Qpsdファイルの圧縮方法

psdファイルの圧縮方法を教えてください。(基本的質問で恐縮ですが)
win98です。なお、ファイルは9MB程度ですが、圧縮したものを解凍する際、鮮明度が落ちずに元通りの画像で開けますでしょうか?

Aベストアンサー

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (デフォルトでは 1.2MB を上限として分割される。)
   (このサイズは +Lhaca で変更できる。)
 5. (4)のファイル全てを、容量を超えないようにメールに添付して送信
   する。
   (添付ファイル総数を本文に明記すること。)
 6. 受け取った側は、全ての添付ファイルを一箇所に集めて、バッチファ
   イルを実行する。
   (操作手順は、本文に明記すること。)
 7. 分割されたファイルが結合されるので、結合された圧縮ファイルを解
   凍する。
 8. 9MBのファイルが解凍されるので、作業する。


これでどうかな!?

※他の圧縮ソフトも分割機能が備わっていると思うが・・・

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (...続きを読む

Qjavaのソースとclassファイルの単位について

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

まだ、一つの*.javaから一つのclassファイルを作ったことしかないので、
申し訳ないですが、どなたか教えてください。よろしくお願いします。

Aベストアンサー

基本的にファイルには関係なく ソースに有るclassごとに *.class
のファイルができます。
なので、一つのjavaファイルの中に複数のクラス(インナークラスも含め)
が有ればその数分classファイルができます。

ただこれらのファイルを jarファイルにまとめてしまえば *.jar
のファイル一つにもになりますが。
ファイル内に
class クラス名1{
}
class クラス名2{
}

があれば クラス名1.class と クラス名2.class
のファイルが出来ます。

QNTFS圧縮したファイルを全部まとめて戻す方法

NTFS圧縮したファイルをプロパティからひとつひとつチェックをはずして戻すのではなく、圧縮されたファイルを全部まとめて元に戻す方法ってあるのでしょうか?

Aベストアンサー

圧縮を解除したいファイルを全て選択した状態で
→プロパティ→NTFS圧縮のチェックを外す→OK

それらのファイルがフォルダに入っているなら
フォルダのプロパティからやってもいい。
(サブフォルダにも適用するか尋ねられるからOKにする)

Qjavaのclassファイルが出来ません。

javaを独学で勉強しようと思い本を購入いたしました。
インストールしていざjavac ファイル名.javaで実行してもclassファイルが
できません。何度も試してみたのですが(涙)
上記の様に実行してみたら、下記のようなエラーがでます。
エラーの内容が分かりません。
よろしくアドバイスお願い申し上げます。
Exception in thread "main"java long.NoclassDefFoundError;
com/sun/tools/javac/main

Aベストアンサー

あう。HogeHoge.javaは例で、実際にはkoronさんの作成したjavaファイルを指定して欲しかったのですが(^^;
ただ、「エラー: HogeHoge.javaを読み込めません」と表示されたということは、NoClassDefFoundErrorにはならず、ちゃんとcom.sun.tools.javac.Mainが実行されています。
なので、C:\jdk1.3\bin\javac とフルパスでコマンドを指定するとうまくいって、javac のみ指定した場合はダメなようですね。
(binフォルダに置くとコンパイルできる、というのはちょっと意味が分かりませんでした。javaファイルはカレントディレクトリにあれば良いはずです)

普通にインストールしただけの場合には考えにくいのですが、どこか別の(無効な)javacにパスが通っていたりはしないでしょうか?
C:\WINDOWSをファイル名"javac.exe"で検索してみるとか。もしヒットしたら、それを削除してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報