java 调用felix_寻找在动态加载Jar文件中使用Apache Felix并在Java中在运行时实例化类的基本示例...

我试着根据一些例子实现我自己的类加载器.但是,我认为它没有按预期工作(无法重新加载Jar文件等.我看到很少引用推荐使用OSGI或Apache Felix来处理Jar文件加载.是否有任何加载Jar的例子,从Jar实例化一个类?

关于我想要完成什么的更多细节.我有一个基本上连续运行的Java命令行应用程序.我希望它能够在运行时动态引用JAR文件,并在运行时实例中引用这些jar中的类.这些罐子可能包含一个或多个支持类.这些罐子本质上是定制的工作单元,由连续运行的主应用程序中的某些事件条件执行. ..由于这是一个多客户端,我想让jar是一个可插入类型的工作单元.

我目前的方向是为客户提供一个代码接口,然后让他们将他们的类打包到一个jar文件中.然后,应用程序将执行配置的(数据库)jar路径并从Jar运行类.这适用于加载jar和类,但是,我希望能够基本上热部署这些jar.

总之,我想有一个包含支持函数的类的JAR文件.一个定义的类,将在运行时从Jar(来自主循环应用程序)引用.在主应用程序运行时更改JAR文件的能力.

如果我要使用第三方库,我最好使用Apache Felix.

谢谢

我想我用Apache Felix 4来解决它.这是加载jar /类的最佳方法吗?或者是否有更好的更有效的方式.到目前为止,我的研究并没有指出一个解决方案.谢谢.

FrameworkFactory ff = new FrameworkFactory ();

Map config = new HashMap();

config.put("org.osgi.framework.storage", "c:\\temp\\myclientBundles");

config.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,

"packages needed,more packages needed");

config.put(Constants.FRAMEWORK_STORAGE_CLEAN, "true");

Framework fwk = ff.newFramework(config);

fwk.start();

BundleContext bc = fwk.getBundleContext();

Bundle bundle = bc.installBundle("file:C:\\my_client.jar");

bundle.start();

bundle.update();

Class clazz = bundle.loadClass("client.work.process");

Job pc = (Job) clazz.newInstance();

pc.startWork(someConfigObject);

bundle.stop();

fwk.stop();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值