The org.eclipse.ui.jarpackager package provides utility classes to programmatically export files to a Jar file. Below is a code snippet that outlines the use of the JarPackageData class:
void createJar(IType mainType, IFile[] filestoExport) { Shell parentShell= ...; JarPackageData description= new JarPackageData(); IPath location= new Path("C:/tmp/myjar.jar"); description.setJarLocation(location); description.setSaveManifest(true); description.setManifestMainClass(mainType); description.setElements(filestoExport); IJarExportRunnable runnable= description.createJarExportRunnable(parentShell); try { new ProgressMonitorDialog(parentShell).run(true,true, runnable); } catch (InvocationTargetException e) { // An error has occurred while executing the operation } catch (InterruptedException e) { // operation has been canceled. } }
Additional API is provided to create a plug-in specific subclass of JarPackageData. This allows other plug-ins to implement their own Jar export/import wizards and to save the content of the JarPackageData object to a corresponding Jar description file.
Once the JAR is described by a JarPackageData, it can be programmatically written using a JarWriter3.