<p>I'm writing a J2SE desktop application that requires one of its components to be pluggable. I've already defined the Java interface for this plugin. The user should be able to select at runtime (via the GUI) which implementation of this interface they want to use (e.g. in an initialisation dialog). I envisage each plugin being packaged as a JAR file containing the implementing class plus any helper classes it may require.</p>

<p>What's the best technology for doing this type of thing in a desktop Java app?</p>

One approach I'm considering is having my application start up a lightweight OSGi container, which if I understand correctly would be able to discover what plugin JAR files exist in a designated folder, which in turn would let me list them for the user to choose from. Is this feasible?
I also found
this article
by Richard Deadman, but it looks a little dated (2006?) and mentions neither OSGi (at least not by name) nor the
```
java.util.jar
```
package