Bug 24199 New Classpath Variables
Why should a full rebuild of the workspace be required when you add a classpath variable? Because it's a new variable it doesn't affect any existing projects. It would be more convenient if a rebuild were not required when adding a new classpath variable. Thanks.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/VariableBlock.java
int steps= elements.size() + toRemove.size();
		if (steps > 0) {
			
			String title= NewWizardMessages.getString("VariableBlock.needsbuild.title"); 
			String message= NewWizardMessages.getString("VariableBlock.needsbuild.message"); 
			
			MessageDialog buildDialog= new MessageDialog(getShell(), title, null, message, MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL }, 2);
			int res= buildDialog.open();
			if (res != 0 && res != 1) {
				return false;
			}
			
			IRunnableWithProgress runnable= new VariableBlockRunnable(toRemove, elements, res == 0);
			
			ProgressMonitorDialog dialog= new ProgressMonitorDialog(getShell());
			try {
				dialog.run(true, true, runnable);
			} catch (InvocationTargetException e) {
				ExceptionHandler.handle(e, getShell(), NewWizardMessages.getString("VariableBlock.operation_errror.title"), NewWizardMessages.getString("VariableBlock.operation_errror.message")); 
				return false;
			} catch (InterruptedException e) {
				return true;
			}
		}
		
		
		return true;
	}
	
	private class VariableBlockRunnable implements IRunnableWithProgress {