X-Git-Url: https://git.pterodactylus.net/?p=jSite.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FConfigurationLocator.java;fp=src%2Fmain%2Fjava%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FConfigurationLocator.java;h=b00a8cd9d7db857f47fa16f8e79089825617dc38;hp=7d0a83b850617c2e9943382b0780a71a8a8f2e7c;hb=f6658f9e2121cf6f08ff567624cc9b83dcad0eb5;hpb=d01d8e6ceadffe3b8bd2cf9f84f4bbd75cba4752 diff --git a/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java b/src/main/java/de/todesbaum/jsite/main/ConfigurationLocator.java index 7d0a83b..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–2014 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");