File targetFile= fJarPackage.getJarLocation().toFile();
File targetFile= fJarPackage.getAbsoluteJarLocation().toFile();
	protected boolean preconditionsOK() {		if (!fJarPackage.areClassFilesExported() && !fJarPackage.areJavaFilesExported()) {			addError(JarPackagerMessages.getString("JarFileExportOperation.noExportTypeChosen"), null); //$NON-NLS-1$			return false;		}		if (fJarPackage.getElements() == null || fJarPackage.getElements().length == 0) {			addError(JarPackagerMessages.getString("JarFileExportOperation.noResourcesSelected"), null); //$NON-NLS-1$			return false;		}		if (fJarPackage.getJarLocation() == null) {			addError(JarPackagerMessages.getString("JarFileExportOperation.invalidJarLocation"), null); //$NON-NLS-1$			return false;		}		File targetFile= fJarPackage.getJarLocation().toFile();		if (targetFile.exists() && !targetFile.canWrite()) {			addError(JarPackagerMessages.getString("JarFileExportOperation.jarFileExistsAndNotWritable"), null); //$NON-NLS-1$			return false;		}		if (!fJarPackage.isManifestAccessible()) {			addError(JarPackagerMessages.getString("JarFileExportOperation.manifestDoesNotExist"), null); //$NON-NLS-1$			return false;		}		if (!fJarPackage.isMainClassValid(new BusyIndicatorRunnableContext())) {			addError(JarPackagerMessages.getString("JarFileExportOperation.invalidMainClass"), null); //$NON-NLS-1$			return false;		}				if (fParentShell == null)			// no checking if shell is null			return true;		IFile[] unsavedFiles= getUnsavedFiles();		if (unsavedFiles.length > 0)			return saveModifiedResourcesIfUserConfirms(unsavedFiles);		return true;	}