JAR-файл работает из другого каталога? - PullRequest
0 голосов
/ 21 ноября 2010

Я создал файл JAR с моей программой на Java.Этот фрагмент кода откроет несколько файлов внутри каталога «Test», который находится в том же каталоге, что и файл JAR.Например:

/
 -- program.jar
 -- /Test
     -- *

Если я запускаю через терминал с: java -jar program.jar, он работает отлично.Но если я запускаю графически (щелкнув правой кнопкой мыши по файлу jar и откройте с помощью OpenJDK ...), он не будет работать должным образом.Точно так же, как если бы я запускался из другого каталога.

Возможно ли, что при графическом запуске файла JAR он запускается из другого каталога?

Кстати, я работаю в Ubuntu.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2010

Да, вы получите другой текущий рабочий каталог ... Было бы два решения:

1) Найдите CWD, взяв этот хак:

    public class Test {
        public static void main(String... args) { 

            ClassLoader cl = Test.class.getClassLoader();
            String f = cl.getResource("").getFile();

            File cwd = new File(f);

            if (cwd.toString().endsWith("!"))
                cwd = cwd.getParentFile();

            JOptionPane.showMessageDialog(null, cwd);
        }
    }

2) Если файлы в Test являются статическими (часто не меняются), решением будет упаковать их внутри банки.

0 голосов
/ 21 ноября 2010

Я не уверен, поможет ли это, но ниже приведена ссылка на аналогичный вопрос JAR.

Запуск файла JAR с исходными файлами в другом каталоге

...