我插件系统在我的Java应用程序。是否有可能随时加载JAR/Java类到您的应用程序,还是必须将这些JAR/Java类包含到我的应用程序中?是否可以将JAR加载到正在运行的Java应用程序中?
我的想法是加载插件应用程序,然后调用这个类的接口方法,而不需要重新启动Java应用程序。这是可能的,甚至是明智的吗?
我插件系统在我的Java应用程序。是否有可能随时加载JAR/Java类到您的应用程序,还是必须将这些JAR/Java类包含到我的应用程序中?是否可以将JAR加载到正在运行的Java应用程序中?
我的想法是加载插件应用程序,然后调用这个类的接口方法,而不需要重新启动Java应用程序。这是可能的,甚至是明智的吗?
我建议使用OSGi的动态插件的加载/卸载。它处理所有类加载的东西。如果你不能使用OSGi中,你将不得不使用自己的类加载器,并与待装的jar文件的位置配置。
您可以通过使用自己的ClassLoader其所处的JAR文件,并返回类字节到JVM。看看本教程由太阳:http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercises/ClassLoader/help.html
我也建议OSGi的,但对于一个简单的基于插件系统,检查出的Java插件框架。它旨在简化基于插件的系统,可在http://jpf.sourceforge.net/找到。
正如@Liv提到的那样,类似URLClassLoader的东西可以用于简单的一次性加载,但这是一个快速修复,而不是一个插件加载系统的好起点。