public static void populateSystemPropertiesFromDefaults(final String initialProperties) throws IOException { URL initialPropertiesLocation; if (initialProperties == null) { initialPropertiesLocation = Broker.class.getClassLoader().getResource("system.properties"); } else { initialPropertiesLocation = (new File(initialProperties)).toURI().toURL(); } Properties props = new Properties(CommonProperties.asProperties()); if (initialPropertiesLocation != null) { try (InputStream inStream = initialPropertiesLocation.openStream()) { props.load(inStream); } } Set<String> propertyNames = new HashSet<>(props.stringPropertyNames()); propertyNames.removeAll(System.getProperties().stringPropertyNames()); for (String propName : propertyNames) { System.setProperty(propName, props.getProperty(propName)); } }