If your module uses some external library, you will probably use a wrapper module to make classes from that library available to your module at runtime.

A wrapper module is a module that contains no code - really the only significant thing about it is its manifest, which does two significant things, in addition to the standard module unique ID/version/etc.:

  • Has a Class-Path entry for one or more jars in the subdirectory ext/ of the directory where the module is
  • Declares OpenIDE-Public-Packages followed by a list of the packages from the library that other modules should be able to used

Starting with NB 5.0 you can simply use File | New Project | NetBeans Plug-in Modules | Library Wrapper Module Project to make a library wrapper.

So a wrapper module acts as a proxy to turn a library into a NB module. Since you can't modify the NetBeans classpath directly (nor would you want to), this is the way you let your code use third party libraries. It serves the same function that running with java -cp or setting CLASS_PATH would do in a smaller Java application.

There are other options for packaging libraries described here.

If the above was confusing, read the FAQ describing module dependencies.

Source: NetBeans FAQ