私は多くの暗号化されたクラスローダーを見てきました。以下のような:URLClassLoader - 暗号化されたJarを使用
http://www.javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html?page=2
1は、具体的には、私は私のニーズに適応しようとしているものであること。
私は基本的に、私がバイト配列( "byte [] decrypt;)"に復号化した暗号化されたJARを持っています。
バイト配列を使用してクラスをロードしたいので、暗号化されたjarを含むハードドライブにファイルを作成する必要はありません。
ClassLoaderが必要とする別の配列( "URL [] urls")があるので、URLClassLoaderを使用し、ClassLoaderを使用する必要はありません。 (通常のクラスローダーでこれを行うことはできますか?)
アイデアはありますか?
これは類似しているが全く同じではない! :P古いものは、私がやっていたことをかなり完璧に処理しました。今回私はそれをメモリにロードする必要があります。また、この1つは、扱い - ちょっと! Chrisに感謝します。 - 1つの問題はgetParent()。findClassメソッドです.UrlClassLoaderが見つからないようで、代わりにClassLoaderを使用しています。 (私自身のgetParent()メソッドを作ることができない限り) –
getParentはURLClassLoader(ClassLoaderを継承します)を返します。必要に応じてキャストできますが、なぜ必要なのかわかりません。findClassメソッドの代理人loadClassDataメソッドがnullを返す場合(つまり、解読されたバイト配列でクラスを見つけることができない場合)、URLClassLoaderに渡します。 –
興味深いことに、私はちょうどうまく働いてそれをキャストした。すべてが今、完璧に働いています。すべての助けをありがとう!とても有難い。 –