Путь файла .txt в Java - PullRequest
       2

Путь файла .txt в Java

0 голосов
/ 12 сентября 2018

Я работаю с IDE NetBeans и у меня есть файл .txt, сохраненный в папке src / myapp. Если я бегу из IDE, это распознает мой

File file=new File("src/myapp/mytext.txt");

Но если я создаю файл jar и дважды щелкаю по нему или запускаю из командной строки, я получаю эту ошибку:

java.io.FileNotFoundException: src\myapp\mytext.txt

Я мог бы вставить абсолютный путь, но как я могу запустить свою банку независимо от положения моего проекта в компьютере?

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

Вы можете получить путь к файлу независимо от его позиции следующим образом:

ClassLoader classLoader = getClass().getClassLoader();
String path = classLoader.getResource("mytext.txt").toString();
0 голосов
/ 12 сентября 2018

такой проблемы нет

File file=new File("./src/myapp/mytext.txt");
0 голосов
/ 12 сентября 2018

Java ожидает найти файл относительно вашего рабочего каталога.Таким образом, путем жесткого кодирования файла в src/myapp/mytext.txt вы ожидаете, что пользователь вашего приложения будет иметь файл в той же структуре папок.

Если вы ожидаете, что файл будет на том же уровне, что и ваш файл JAR,Вы можете просто использовать ./mytext.txt.Не помещайте ваш mytext.txt под src в вашем проекте.Это для источников, которые вы хотите скомпилировать и / или связать внутри вашего JAR-файла.В NetBeans переместите его за пределы папки /src, таким образом, когда вы запускаете программу из IDE или когда вы запускаете ее извне из файла Jar, вы находите файл на том же уровне.

Если вы хотитеПользователь, чтобы иметь возможность указать местоположение самого файла, вы также можете прочитать аргументы командной строки (аргументы для вашего public static void main(String[] args)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...