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 шт):

Автор решения: USER1111

Вы указываете относительный путь, начиная с директории запуска .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

→ Ссылка