沙漠中的鱼

欲上天堂,先下地狱
posts - 0, comments - 56, trackbacks - 0, articles - 119
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

Java调用外部jar文件

Posted on 2008-08-31 13:12 沙漠中的鱼 阅读(2903) 评论(1)  编辑  收藏 所属分类: Java
一、建立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

评论

# re: Java调用外部jar文件  回复  更多评论   

2010-01-28 17:02 by 伦理电影


Process p = Runtime.getRuntime().exec(cmd); 这样还是运行不了外部jar程序 !

只有注册用户登录后才能发表评论。


网站导航: