« アクセス解析 | メイン | 電子投票 »

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:
http://www.remix.asia/cgi/mt/mt-tb.cgi/353

コメントを投稿

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