2012-03-07 12 views
1

他のJarファイルからJarファイルをプログラムで作成する際の興味深い質問と答えを見てきました。 "マシンを作る機械"文字列からJarを作成しますか?

これは私の初心者の心の中で質問されています。最初にソースファイルや一時ファイルに出力せずにStringから実行可能なJarファイルを作成できますか?私はグーグルで質問をしたが、答えを見つけられなかった。なぜなら、私はどこを見るかわからないからだ。

いずれにせよ、イラストが私の質問を説明するのに役立つかもしれません。私はこのような何かを持っていると言う:

String newClass = "class testing{ \n"+ 
        " public static void main(String args[]){ \n"+ 
        "  System.out.println(\"This works!\"); \n"+ 
        " } \n"+ 
        "}"; 

私は最初の.javaファイルや一時ファイルに出力することなく実行可能Jarファイルにそれをコンパイルすることはできますか?そして、出力されたJarファイルをダブルクリックすると、 "This works!"というコンソールウィンドウが表示されますか?

基本的に私の好奇心は、ソースコードがハードドライブに触れずに理論的にプログラムを作成できるかどうかという疑問から生まれたものです。私は人々がプログラムを逆コンパイルすることができ、何もないことを知っている。しかしそれでも、正当な質問のようです。例えば、ユーザが入力したキーを格納する復号化プログラム。オンラインでプログラムを購入したユーザーは、オンザフライで自分自身を登録することができます。

答えて

0

これは可能ですが、それには外部ライブラリが必要です。 BCELを参照してください。

しかし、私はそれが復号化プログラムなどに大きな違いをもたらすとは思わない。解読鍵はプログラムに入り込む必要があります。その作成者プログラムはおそらくディスク上にあったか、または作成者の作成者がいた可能性があります。キーがディスク上やユーザーの頭のどこにもない場合、そのキーはオンザフライで生成されている必要があり、電源がオフになると復号化されたデータは失われます。これは問題ありません。伝統的に実行されているプログラムのメモリ内でそのキーを生成することもできます。

セキュリティがある限り、一部のシステムでメモリとRAMの違いをぼかすメモリ管理手法(スワッピング、ハイバネーション)もあります。

関連する問題