X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FConfigurationLocator.java;h=b00a8cd9d7db857f47fa16f8e79089825617dc38;hb=8db42d2121e8ee465ab8380a66febde1949a0106;hp=967f93673d7da4d458798aa895cb4262ee61e1e5;hpb=0e88169c3e8decfcd99f39f5ecf3a85df50c3fca;p=jSite.git diff --git a/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java b/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java index 967f936..b00a8cd 100644 --- a/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java +++ b/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java @@ -1,5 +1,5 @@ /* - * jSite - ConfigurationLocator.java - Copyright © 2011–2012 David Roden + * jSite - ConfigurationLocator.java - Copyright © 2011–2019 David Roden * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ package de.todesbaum.jsite.main; import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** * Locator for configuration files in different places. @@ -61,13 +62,11 @@ public class ConfigurationLocator { * list, {@link ConfigurationLocation#CUSTOM} has to be enabled by calling * {@link #setCustomLocation(String)}. */ - public ConfigurationLocator() { + public ConfigurationLocator(JarFileLocator jarFileLocator) { /* are we executed from a JAR file? */ - String resource = getClass().getResource("/" + getClass().getName().replace(".", "/") + ".class").toString(); - if (resource.startsWith("jar:")) { - String jarFileLocation = resource.substring(9, resource.indexOf(".jar!") + 4); - String jarFileDirectory = new File(jarFileLocation).getParent(); - File configurationFile = new File(jarFileDirectory, "jSite.conf"); + Optional jarFile = jarFileLocator.locateJarFile(); + if (jarFile.isPresent()) { + File configurationFile = new File(jarFile.get().getParent(), "jSite.conf"); configurationFiles.put(ConfigurationLocation.NEXT_TO_JAR_FILE, configurationFile.getPath()); } File homeDirectoryFile = new File(System.getProperty("user.home"), ".jSite/config7");