FileNotFoundException в Netbeans - PullRequest
       1

FileNotFoundException в Netbeans

4 голосов
/ 03 сентября 2011

У меня есть проект Java-приложения в Netbeans.У меня только один класс.Я пытаюсь сделать это

FileReader fr = new FileReader("sal.html");

У меня есть файл sal.html в том же пакете.Но я получаю эту ошибку при запуске:

Errorjava.io.FileNotFoundException: sal.html (The system cannot find the file specified)

Ответы [ 7 ]

4 голосов
/ 03 сентября 2011

Я предполагаю, что Netbeans вызывает JVM из корневой папки вашего проекта.Цитирование части файла Javadoc :

По умолчанию классы в пакете java.io всегда разрешают относительные пути к текущему пользовательскому каталогу.Этот каталог называется системным свойством user.dir и обычно является каталогом, в котором была вызвана виртуальная машина Java.

Чтобы проверить относительное разрешение пути, вы можете попробовать:

System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());

Затем вы можете переместить файл туда, где его ищет java.Скорее всего, корневая папка вашего проекта .

Вы также можете рассмотреть возможность использования загрузчика классов для чтения файлов как ресурсов внутри пакетов, используя getClass().getResourceAsStream("sal.html");.Это предпочтительный способ доступа к ресурсам, поскольку вам больше не нужно беспокоиться об абсолютных и относительных путях.Если ресурс находится в вашем classpath, вы можете получить к нему доступ.См. этот ответ для получения дополнительной информации.

1 голос
/ 28 ноября 2014
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());

Затем будет показано, откуда JVM извлекает файлы. Обычно для Linux в /home/username/NetbeansProjects/ApplicationName/.

Поместите ваши ресурсы или файлы по этому пути

1 голос
/ 28 февраля 2012

Нажмите на просмотр файла в Netbeans.Переместите sal.html в папку проекта.Так, что вы увидите это так

- JavaProject
  + build
  + lib
  + nbproject
  + src
  + build.xml
  manifest.mf
  sal.html

Теперь

FileReader fr = new FileReader("sal.html");

будет работать.

1 голос
/ 03 сентября 2011

Поместите ваш файл в основную папку проекта. Не для каких-либо подпапок, таких как src, bin и т. Д. Тогда он обнаружит ваш файл.

0 голосов
/ 03 сентября 2011

Это не проблема "Файл не найден". Это связано с тем, что каждый класс содержит свои собственные ресурсы (пусть это будет файл, изображение и т. Д.), К которым можно получить доступ только через оператор загрузчика ресурсов, как показано ниже:

InputStream in = this.getClass (). GetResourceAsStream ("sal.html");

Единственное исправление заключается в том, что вы получите InputStream вместо файла. Надеюсь, это поможет.

0 голосов
/ 03 сентября 2011

FileNotFoundException означает, что файл не найден.

Папка сборки для NetBeans отличается, если нет файла sal.html.

Попробуйте использовать абсолютный путь вместо использования относительного пути.

0 голосов
/ 03 сентября 2011

Я думаю, что ваша проблема в относительном пути к файлу.Попробуйте объявить FileReader с полным путем к файлу.

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