一、建立Service接口(Service.java):
package service;
public interface Service {
public void start();
public void shutdown();

}
二、建立接口的實例化應用(AppDemo.java):
package application;

import service.Service;

public class AppDemo implements Service {

public void shutdown() {
System.out.println("關閉");

}

public void start(){
System.out.println("啟動");

}

}
三、將AppDemo.java導出為Jar包,并將其放置在工程的application目錄下。
四、新建Jar包加載類(JarLoader.java):
package loader;

import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

public class JarLoader extends URLClassLoader
{
private static JarLoader loader = null;
private JarLoader()
{
super(new URL[0], JarLoader.class.getClassLoader());
}
public static JarLoader getInstance()
{
if(loader==null)
loader = new JarLoader();
return loader;
}
public void addURL(String url) throws MalformedURLException
{

this.addURL(new URL(url));
}

}
五、測試一下:
package test;

import java.net.MalformedURLException;


import service.Service;

import loader.JarLoader;

public class Test
{

/** *//**
* @param args
*/
public static void main(String[] args)
{
JarLoader loader = JarLoader.getInstance();

try
{
loader.addURL("jar:file:///"+System.getProperty("user.dir")
+ "/application/app1.jar" + "!/");
Service serv = (Service)Class.forName("application.AppDemo", true, loader).newInstance();
serv.start();
serv.shutdown();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (InstantiationException e)
{
e.printStackTrace();
} catch (IllegalAccessException e)
{
e.printStackTrace();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}

}

}
轉自:http://blog.csdn.net/ms2578/archive/2007/12/15/1939307.aspx























四、新建Jar包加載類(JarLoader.java):








































































轉自:http://blog.csdn.net/ms2578/archive/2007/12/15/1939307.aspx