diff --git a/core/java/src/net/i2p/util/WorkingDir.java b/core/java/src/net/i2p/util/WorkingDir.java index a003d2b29e7a5b36e2bb0acddfc7fd9c70c37cf3..ef037a6448065eca2b0ce41e3244de7d2e32f77d 100644 --- a/core/java/src/net/i2p/util/WorkingDir.java +++ b/core/java/src/net/i2p/util/WorkingDir.java @@ -52,8 +52,12 @@ public class WorkingDir { * Only call this once on router invocation. * Caller should store the return value for future reference. */ - public static String getWorkingDir(boolean migrateOldConfig) { - String dir = System.getProperty(PROP_WORKING_DIR); + public static String getWorkingDir(Properties envProps, boolean migrateOldConfig) { + String dir = null; + if (envProps != null) + dir = envProps.getProperty(PROP_WORKING_DIR); + if (dir == null) + dir = System.getProperty(PROP_WORKING_DIR); boolean isWindows = System.getProperty("os.name").startsWith("Win"); File dirf = null; if (dir != null) { @@ -69,10 +73,16 @@ public class WorkingDir { dirf = new File(home, WORKING_DIR_DEFAULT); } } + // where we are now - String cwd = System.getProperty(PROP_BASE_DIR); - if (cwd == null) - cwd = System.getProperty("user.dir"); + String cwd = null; + if (envProps != null) + cwd = envProps.getProperty(PROP_BASE_DIR); + if (cwd == null) { + cwd = System.getProperty(PROP_BASE_DIR); + if (cwd == null) + cwd = System.getProperty("user.dir"); + } // Check for a hosts.txt file, if it exists then I2P is there File oldDirf = new File(cwd); diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java index 34e8f40dbfef2473f9cc7b7a7a6d359731263ce7..118d903b9d9867c87101a7266b74425f131ce3f7 100644 --- a/router/java/src/net/i2p/router/Router.java +++ b/router/java/src/net/i2p/router/Router.java @@ -137,7 +137,7 @@ public class Router { // Do we copy all the data files to the new directory? default false String migrate = System.getProperty("i2p.dir.migrate"); boolean migrateFiles = Boolean.valueOf(migrate).booleanValue(); - String userDir = WorkingDir.getWorkingDir(migrateFiles); + String userDir = WorkingDir.getWorkingDir(envProps, migrateFiles); // Use the router.config file specified in the router.configLocation property // (default "router.config"),