Jar не получается считать файл
Когда я запуская данный код в IntelliJ все работает когда же я запускаю в виде jar файл выдает такую ошибку
File file = new File("src/main/java/users/txt.txt");
FileReader fileReader = new FileReader(file);
Scanner sc = new Scanner(fileReader);
String s = sc.nextLine();
System.out.println(s);
Exception in thread "main" java.io.FileNotFoundException: src\main\java\users\txt.txt (Системе не удается найти указанный путь)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at main.main(main.java:10)
Ответы (1 шт):
Вы указываете относительный путь, начиная с директории запуска .jar.
Вам стоит либо сменить путь с "src/main/java/users/txt.txt" до "txt.txt" и переместить txt.txt в одну директорию с .jar
Либо вы уже сейчас можете, ничего не меняя, переместить файл .jar из директории для создания .jar по умолчанию в директорию, где лежит папка src.
Также, будет считаться более правильным, если вы поместите txt.txt в "src/main/resources", а после его можно будет считать так:
InputStream is = MainClass.class.getClassLoader().getResourceAsStream("txt.txt");
UPD: Если вы запускаете .jar из командной строки, тогда следует сначала перейти к директории, где лежит директория src с помощью команды
cd ПОЛНЫЙ_ПУТЬ_К_ДИРЕКТОРИИ_С_SRC
А потом запускать jar с помощью
java -jar PATH_TO_JAR/name.jar