2010年5月22日 星期六

如何在jade的環境下動態載入Agent並執行之

對於沒學過java,而直接寫jade的人,一定對這個標題有問題

有問題的原因就是:jade沒有提供function來做

可是在找過網路後,發現有 java.lang.ClassLoaderjava.net.URLClassLoader 可以用。

使用方式如下:

try{
            URL url[] = new URL[1];
            url[0] = new URL("file:///pathTojar.jar");
            ClassLoader m_loader = new ClassLoader(url, ClassLoader.getSystemClassLoader());
            getContainerController().acceptNewAgent("test", (Agent)m_loader.loadClass("examples.hello.HelloWorldAgent").newInstance());
            getContainerController().getAgent("test").start();
        } catch(Exception e) {
            e.printStackTrace();
}

如此一來,就可以將jar檔裡的class檔讀出來,並動態執行之