/**
* This method runs system.
*/
public static synchronized void run() throws CoreException {
if(instance) return;
if(config==null) throw new CoreException("config = null",EnumCriticalityException.FAILED);
if(log==null) throw new CoreException("log = null",EnumCriticalityException.FAILED);
if(windowMessage==null) throw new CoreException("windowMessage = null",EnumCriticalityException.FAILED);
if(progressManager == null) throw new CoreException("progressManager = null",EnumCriticalityException.FAILED);
//finalize of services
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
config.save();
}