Каков рабочий каталог по умолчанию для jar, запущенного из Windows Explorer? - PullRequest
3 голосов
/ 19 ноября 2011

Я создал файл jar своего приложения, чтобы пользователи могли запускать его из Windows Explorer. Он загружает файл JSON в свой рабочий каталог для некоторых настроек (используя путь ". \ Config.json"). Однако, когда я запускаю его из файла jar из проводника Windows, он не может найти файл конфигурации, хотя работает тот же самый jar из командной строки. Я предполагаю, что это потому, что проводник устанавливает в рабочий каталог что-то, кроме папки jar. На что это установлено? (И как я могу найти собственную папку банки?)

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Почему бы не попробовать распечатать System.getProperty("user.dir"); и выяснить, что думает приложение?

user.dir    User's current working directory

используйте следующее, чтобы получить PARENT того места, где вы .jar загружается из, что звучит так, как вы хотите

import java.io.*;

public class Main
{
    public static void main(final String[] args) throws IOException
    {
        final File file = new File(".");
        System.out.println("file = " + file.getAbsoluteFile().getParent());
    }
}

Вывод при запуске из командной строки или двойном щелчке из проводника Windows:

file = c:\Users\Jarrod Roberson\Projects\SwingJarFinder
0 голосов
/ 19 ноября 2011

Выглядит как дубликат:

Как получить путь к запущенному файлу JAR?

Если ваш файл JAR находится в вашей файловой системе, начните здесьполучить текущий путь:

ClassLoader.getSystemClassLoader().getResource(".").getPath();
...