Java动态加载jar包中的类_Java 从Jar文件中动态加载类

java图形化编程主要依赖于awt以及swing包,这两个包中提供了大部分基本控件。 编程人员基本可以通过从包中查找相关组件,通过相关语法,即可完成相应的图形化编程(此处不赘述)。 现在谈谈如何实现将java编辑的图形化程序编辑为可执行jar文件?? (1)java文

从Style.jar中加载程序所需要的样式

其中Style.jar中有一个MyStyle的类实现了一个StyleInterface的接口

接口代码如下:

public interface StyleInterface {

public String getStyle();

}

MyStyle类的代码如下:

public class MyStyle implements StyleInterface{

@Override

public String getStyle() {

return "我是从MyStyle中得到的样式代码!";

}

}

然后,在记事本主程序程序中通过如下方式调用:

String class_path = "MyStyle";//Jar中的所需要加载的类的类名

String jar_path = "file://D:\Style.jar";//jar所在的文件的URL看好多都写的使用下面获取properties文件:

InputStream in = 

try {

ClassLoader cl = new URLClassLoader(new URL[]{new URL(jar_path)});//从Jar文件得到一个Class加载器

Class> c = cl.loadClass(class_path);//从加载器中加载Class

StyleInterface sif = (StyleInterface) c.newInstance();//从Class中实例出一个对象

System.out.println(sif.getStyle());//调用Jar中的类方法

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

注意:

class_path必须是完整类名(连同所在的包的路径),例如:在myjava.test下有一个类Test,则Test的完整类名是:myjava.test.Test.而如果是在"缺省包"下的类,就可以省略包的路径(本来就没有)。

jar_path不是Jar文件的路径,而是Jar文件的URL。

通常可以这样表示:"file://Jar文件的绝对路径"

从Class中实例出对象时,一定要把Object强制转换成实现指定接口的类,就想例子中的StyleInterface

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值