Я попытался прочитать некоторые данные из моего файла 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.
Из файла javadoc Файл:
Абстрактное представление имен файлов и каталогов.
Он не представляет собой существующий файл, а только пути.
Проблема здесь в том, что файл, который вы пытаетесь открыть, не существует. Если ваш файл упакован в JAR, вы можете попытаться получить к нему доступ через метод getRessource класса ClassLoader:
getClass().getClassLoader().getResource("myFile.txt");