Почему java сканер не работает при вызове jar из cmd?

1

Я попытался прочитать некоторые данные из моего файла myFile.txt. Код, который я использую, выглядит следующим образом:

try (Scanner scanner = new Scanner(new File("myFile.txt"))) {
        System.out.println("Start");

        while (scanner.hasNextLine()) {
            System.out.println("Inside");

            String line = scanner.nextLine();

            String[] attribute = line.split(",");

            String id = attribute[0];
            String firstName = attribute[1];
            String lastName = attribute[2];

            System.out.println(id + " " + firstName+ " " + lastName);
        }
        System.out.println("The end");
    }

Когда я запускаю этот код из своей IDE, он отлично работает. Но когда я запускаю файл jar из CMD-окна, он не работает. На экране cmd отображаются только "Пуск" и "Конец". Итак, scanner.hasNextLine() всегда false.

  • 1
    где текстовый файл, когда вы запускаете его из банки?
  • 0
    Находится в том же месте назначения, что и мой файл jar проекта.
Показать ещё 21 комментарий
Теги:
cmd
jar
file-io
java.util.scanner

1 ответ

0

Из файла javadoc Файл:

Абстрактное представление имен файлов и каталогов.

Он не представляет собой существующий файл, а только пути.

Проблема здесь в том, что файл, который вы пытаетесь открыть, не существует. Если ваш файл упакован в JAR, вы можете попытаться получить к нему доступ через метод getRessource класса ClassLoader:

getClass().getClassLoader().getResource("myFile.txt");
  • 0
    Нет, мой файл не упакован в JAR. Смотрите мой последний комментарий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню