« 無線ICタグと半年前の卵 | メイン | 電子投票 »

Tips

リモートクラスロード

 信頼するWEBからクラスをダウンロードし、オブジェクトを生成・実行させる。▼
 ブートストラップだけを配布した後、WEBに配置したクラスだけを更新することが可能。いろいろな応用例が考えられる。RMIではないのでサーバーを選ばず、jarを配置しダウンロード可能であればよい。
●サーバー側のArchive.jar
public class ClassRemote{
    public ClassRemote(){
        System.out.println( "サーバー上のコード(コンストラクタ)" );
    }
}
●クライアント側
import java.net.URL;
import java.net.URLClassLoader;

class Client{
    public static void main( String args[] ){
        try{
//          URL[] url = { new URL( "jar:file:///C:/Archive.jar!/" ) };
            URL[] url = { new URL( "jar:/d/Archive.jar!/" ) };
            URLClassLoader loader = new URLClassLoader( url );
            loader.loadClass( "ClassRemote" ).newInstance();
        }
        catch( Exception e ){ e.printStackTrace(); }
    }
}
クラスメソッド呼び出しにはリフレクトを使用する。
購入した参考書籍:Javaクイックリファレンス 第4版

トラックバック

このエントリーのトラックバックURL:
https://www.remix.asia/cgi/mt/mt-tb.cgi/353

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)