progressMonitor.subTask(classFilePath.toString());
progressMonitor.subTask(JarPackagerMessages.getFormattedString("JarFileExportOperation.exporting", classFilePath.toString()));
	private void exportClassFiles(IProgressMonitor progressMonitor, IPackageFragmentRoot pkgRoot, IResource resource, IJavaProject jProject, IPath destinationPath) {		if (fJarPackage.areClassFilesExported() && isJavaFile(resource) && pkgRoot != null) {			try {				// find corresponding file(s) on classpath and export				Iterator iter= filesOnClasspath((IFile)resource, destinationPath, jProject, progressMonitor);				IPath baseDestinationPath= destinationPath.removeLastSegments(1);				while (iter.hasNext()) {					IFile file= (IFile)iter.next();					if (!resource.isLocal(IResource.DEPTH_ZERO))												file.setLocal(true , IResource.DEPTH_ZERO, progressMonitor);					IPath classFilePath= baseDestinationPath.append(file.getName());					progressMonitor.subTask(classFilePath.toString());					fJarWriter.write(file, classFilePath);				}			} catch (IOException ex) {				String message= ex.getMessage();				if (message == null)					message= JarPackagerMessages.getFormattedString("JarFileExportOperation.ioErrorDuringExport", resource.getFullPath()); //$NON-NLS-1$				addWarning(message , ex);			} catch (CoreException ex) {				String message= ex.getMessage();				if (message == null)					message= JarPackagerMessages.getFormattedString("JarFileExportOperation.coreErrorDuringExport", resource.getFullPath()); //$NON-NLS-1$				addWarning(message, ex);			}		}	}