Каталог действителен в Intellij, но НЕ в CMD и .jar - PullRequest
0 голосов
/ 05 мая 2020

У меня проблема в этой части кода. Из папки я загружаю все изображения, а затем сохраняю их как часть объекта в списке этих объектов.

Когда я запускаю его в Intellij, все в порядке. Я печатаю isDirectory () только из-за этой проблемы. В intellij он возвращает истину.

Но когда я пытаюсь запустить его в cmd через jar, возникает проблема. Метод isDirectory () возвращает false, а listFiles () выдает исключение NullPointerException.

Я также пытался вручную сохранить в каталоге String весь путь, но ничего не изменилось. В intellij он отлично работает, и его проблема в CMD с jar. Проблема действительно в этом. Jar отлично работал до того, как я начал использовать эти функции. Спасибо за любые идеи.

 private void loadAllExercises(){
        public String directory = System.getProperty("user.dir") + "\\pictures\\";
        File directory = new File(directory);

        System.out.println(directory.isDirectory());

        for (File file : directory.listFiles()) {
            loadExercise(file);
            }
        }

    private void loadExercise(File file){
        if(file.getName().toLowerCase().endsWith(".jpg")) {
            Exercise exercise = new Exercise(file.getName());
            this.allExercises.add(exercise);
        }
    }

1 Ответ

1 голос
/ 05 мая 2020

System.getProperty("user.dir") возвращает текущий каталог при запуске приложения и, вероятно, не то, что вы планировали. Если вы хотите указать на свой домашний каталог, потому что там находится ваш каталог pictures, попробуйте использовать System.getProperty("user.home").

...