void () { String property = System.getProperty(SYSTEM_PATHS_CUSTOMIZER); if (property == null) return; try { Class<?> aClass = PathManager.class.getClassLoader().loadClass(property); Object customizer = aClass.getConstructor().newInstance(); if (customizer instanceof PathCustomizer) { PathCustomizer.CustomPaths paths = ((PathCustomizer)customizer).customizePaths(); if (paths != null) { ourOriginalConfigDir = getConfigDir(); if (paths.configPath != null) System.setProperty(PROPERTY_CONFIG_PATH, paths.configPath); if (paths.systemPath != null) System.setProperty(PROPERTY_SYSTEM_PATH, paths.systemPath); if (paths.pluginsPath != null) System.setProperty(PROPERTY_PLUGINS_PATH, paths.pluginsPath); if (paths.logDirPath != null) System.setProperty(PROPERTY_LOG_PATH, paths.logDirPath); if (paths.startupScriptDir != null) ourStartupScriptDir = paths.startupScriptDir; // NB: IDE might use instance from a different classloader ourConfigPath = null; ourSystemPath = null; ourPluginPath = null; ourScratchPath = null; ourLogPath = null; } } } catch (Throwable e) { log("Failed to set up '" + property + "' as PathCustomizer: " + e); } }