Java io filenotfoundexception plugins authme geolite2 country mmdb не удается найти указанный файл

Обновлено: 07.07.2024

Если я скопирую это непосредственно и поместу это в коробку помещения URL хрома. файл открывается но строка:

Выдает файл не найден

Спасибо тебе за помощь.

2 ответа

Вы можете использовать конструктор File Файл (URI uri) преобразует ваш URL URL-адрес в URI и передает его в качестве аргумента для конструктора File , как показано ниже:

Бит file: создает то, что вы видите на самом деле не путь к файлу, а URL.

URL имеет метод toFile() , который ближе к тому, что вы хотите, но все же не тот, который вы на самом деле ищете, а именно getResourceAsStream :

Подходящим способом вызова getResource / getResourceAsStream является Play.class.getResource , а не getClass().getResource . Мелкая гнида; вариант getClass() не идиоматичен и строго хуже / менее читабелен: если Play когда-либо разделяется на подклассы, он ломается, тогда как Play.class.getResource этого не происходит. Даже если это не актуально, лучше использовать стиль, который более идиоматичен, а правильный ответ - строго больше сценариев.

Как правило, если вы преобразуете полученный ресурс в файл, который вы испортили; смысл getResource - предоставить вам ресурсы из того же места, где находятся ваши классы, и они не обязательно должны быть файлами . Это могут быть записи в банке (которые сами по себе не являются файлами, и к ним нельзя получить прямой доступ как java.io.File или как java.nio.path.Path ), передаваемые по сети и генерируемые на лету. - все идет, в этом смысл абстракции. В этом случае вы берете свой файл и немедленно превращаете его в InputStream . Не делайте этого - абстракция getResource может сделать это.

Как и все ресурсы, вы не можете просто открыть поток ввода, как это. Вы должны убедиться, что он также закрыт, независимо от того, что происходит. Для этого используйте try-with-resources.

Собираем все вместе:

Не нужно закрывать его; Конструкция try позаботится об этом за вас. Неважно, как код «выходит» из этих фигурных скобок (выполняя его до конца, через return или через какой-либо другой поток управления, или через исключение) - этот входной поток будет закрыт.

Он находится в том же каталоге, что и мой файл java .

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

Я пытаюсь создать новый образец приложения в Android Studio 2.0. Когда я пытаюсь запустить или отладить его, он показывает ошибку времени компиляции, например, Не удалось выполнить задачу: app:compileDebugJavaWithJavac. java.io.FileNotFoundException: D:\Android Studio\newapp\app\libs\core.jar.

Error:Could не открытый класс инициализации кэш-памяти для инициализации скрипта 'C:\Users\Subash\AppData\Local\Temp\asLocalRepo2.gradle' (C:\пользователи\Subash.gradle\caches\2.2.1 скриптов\\asLocalRepo2_cd0g6mnzdabuvxgeqlhhrxv0q\InitScript\инициализации). java.io.FileNotFoundException.

Поместите word.txt непосредственно в качестве дочернего элемента корневой папки проекта и однорангового узла src

Отказ от ответственности: я хотел бы объяснить, почему это работает в данном конкретном случае и почему это может не сработать для других.

Почему это работает:

Когда вы используете File или любой другой вариант FileXxx , вы ищете файл в файловой системе относительно "working directory" . Рабочий каталог, можно описать так:

При запуске из командной строки

C:\EclipseWorkspace\ProjectRoot\bin > java com.mypackage.Hangman1

рабочий каталог- C:\EclipseWorkspace\ProjectRoot\bin . С вашим IDE (по крайней мере, со всеми теми, с которыми я работал) рабочий каталог-это ProjectRoot . Поэтому, когда файл находится в ProjectRoot , то использование только имени файла в качестве относительного пути допустимо, потому что он находится в корне рабочего каталога.

Аналогично, если бы это была ваша структура проекта ProjectRoot\src\word.txt , то путь "src/word.txt" был бы действителен.

Почему это может не сработать

Во-первых, рабочий каталог всегда может измениться. Например, при запуске кода из командной строки, как в приведенном выше примере, рабочим каталогом является bin . Так что в этом случае он потерпит неудачу, так как нет bin\word.txt

Во-вторых, если бы вы экспортировали этот проект в jar и файл был настроен для включения в jar, он также потерпел бы неудачу, так как путь также больше не будет действительным.

Тем не менее, вам нужно определить, должен ли файл быть встроенным ресурсом (или просто "resource"-терминами, которые иногда я буду использовать взаимозаменяемо). Если это так, то вы захотите встроить файл в classpath и получить к нему доступ через URL. Первое, что вам нужно будет сделать (в данном конкретном случае), - это убедиться, что файл встроен в classpath. Если файл находится в корневом каталоге проекта, необходимо настроить сборку таким образом, чтобы она включала этот файл. Но если вы поместите файл в src или в какой-то каталог ниже, то сборка по умолчанию должна поместить его в путь к классу.

Вы можете получить доступ к ресурсу classpath несколькими способами. Вы можете использовать класс Class , который имеет метод getResourceXxx , из которого вы используете для получения ресурсов classpath.

Например, если вы изменили структуру проекта на ProjectRoot\src\resources\word.txt , вы можете использовать это:

getResourceAsStream возвращает InputStream , но получает URL под капотом. Кроме того, вы можете получить URL , если это то, что вам нужно. getResource() вернет URL

Для пользователей Maven, где структура каталогов похожа на src/main/resources , содержимое папки resources помещается в корень classpath. Так что если у вас там есть файл, то вы будете использовать только getResourceAsStream("/thefile.txt")

Можно использовать относительные пути, но они могут быть сложными. Лучшее решение-знать, где хранятся ваши файлы, то есть распечатать папку:

Этот код должен напечатать папку, в которой он ищет. Поместите файл туда,и вы будете в порядке.

Ваш файл должен находиться непосредственно в папке проекта, а не внутри какой-либо другой подпапки.

Если папка вашего проекта называется, например, AProject , она должна находиться в том же месте, что и ваша папка src .

Я пытаюсь создать подписанное приложение в Android Studio, но я застрял на этой ошибке, которая говорит: ошибка keytool: java.io.FileNotFoundException: C:\AndroidWorkspace\androidKey\public.jks (система не может найти указанный путь) Я получаю эту ошибку, когда создаю новое хранилище ключей. я в.

Я читал путь из файла свойств и не упомянул, что в конце есть пробел. Убедитесь, что у вас его нет.

Убедитесь, что при создании txt-файла вы не вводите имя "name.txt", а просто вводите "name". Если вы наберете "name.txt", то Eclipse увидит его как"name.txt.txt". Это решило все для меня. Также сохраните файл в папке src, а не в папке, где находится .java, на одну папку выше.

У меня та же проблема, но знаешь почему? поскольку я не поместил .txt в конец своего файла и поэтому это был файл, а не textFile, вы должны сделать всего две вещи:

  1. Поместите текстовый файл в корневой каталог (e.x если у вас есть проект с именем HelloWorld, просто щелкните правой кнопкой мыши файл HelloWorld в каталоге пакета и создайте файл
  2. Сохраните как этот файл с любым именем, которое вы хотите, но с .txt в конце этого файла Я думаю, что ваша проблема решена, но я пишу это для того, чтобы другие люди знали об этом. Спасибо.

Попробуйте создать файл с помощью кода, Так вы узнаете путь к файлу, где создается система

я думаю, что это всегда сводится к classpath . сказав, что если вы запускаете из той же папки, где находится ваш .class, то измените Scanner input = new Scanner(new File("word.txt")); на Scanner input = new Scanner(new File("./word.txt")); , что должно сработать

Похожие вопросы:

ошибка keytool: java.io.FileNotFoundException: api.sepa.express.crt (система не может найти указанный файл) Я пробовал различные примеры, которые я нашел в stackoverflow. keytool -importcert -file.

Я использовал Java для копирования файла, но появилось исключение (система не может найти указанный файл). Коды таковы public static void copyFile(String sourceFile, String destFile)< try

У меня есть таймер, установленный для вызова класса, который содержит pdf генерирующий код. Я установил путь к файлу там, где он должен быть saved..but, он показывает исключение как.

Я пытаюсь создать новый образец приложения в Android Studio 2.0. Когда я пытаюсь запустить или отладить его, он показывает ошибку времени компиляции, например, Не удалось выполнить задачу.

Error:Could не открытый класс инициализации кэш-памяти для инициализации скрипта 'C:\Users\Subash\AppData\Local\Temp\asLocalRepo2.gradle' (C:\пользователи\Subash.gradle\caches\2.2.1.

Я пытаюсь создать подписанное приложение в Android Studio, но я застрял на этой ошибке, которая говорит: ошибка keytool: java.io.FileNotFoundException: C:\AndroidWorkspace\androidKey\public.jks.

Я создал файл свойств и пытаюсь получить к нему доступ в моем файле класса spring DAO, но получаю java.io.FileNotFoundException: config.properties (система не может найти указанный файл) . Я.

У меня есть существующий файл в моей системе под названием data, но он все еще говорит The system cannot find the file specified. Я пытаюсь создать объект существующего класса со всеми методами для.

Так что я некоторое время застрял на этом. В принципе, у меня есть файл, созданный с именем "word.txt", и всякий раз, когда я запускаю программу, он дает мне эту ошибку:

По иронии судьбы, я создал файл "word.txt" в том же каталоге, что и мой java файл, и тем не менее он все еще дает мне эту ошибку.

ОТВЕТЫ

Ответ 1

Поместите word.txt непосредственно как дочерний элемент корневой папки проекта и одноранговый src

Отказ от ответственности: Я хотел бы объяснить, почему это работает для этого конкретного случая и почему это может не работать для других.

Почему это работает:

Когда вы используете File или любой другой вариант FileXxx , вы ищете файл в файловой системе относительно "рабочего каталога". Рабочий каталог можно описать следующим образом:

При запуске из командной строки

C:\EclipseWorkspace\ProjectRoot\bin > java com.mypackage.Hangman1

рабочий каталог C:\EclipseWorkspace\ProjectRoot\bin . С вашей IDE (по крайней мере, с теми, с которыми я работал) рабочим каталогом является ProjectRoot . Поэтому, когда файл находится в ProjectRoot , используйте только имя файла, поскольку относительный путь действителен, потому что он находится в корневой директории.

Аналогично, если это была ваша структура проекта ProjectRoot\src\word.txt , тогда был бы допустим путь "src/word.txt" .

Почему он не работает

Во-первых, рабочий каталог всегда может меняться. Например, запустив код из командной строки, как в приведенном выше примере, рабочим каталогом является bin . Таким образом, в этом случае он потерпит неудачу, поскольку не существует bin\word.txt

Во-вторых, если вы собираетесь экспортировать этот проект в банку, и файл был настроен для включения в банку, он также потерпит неудачу, так как путь уже не будет действительным.

При этом вам нужно определить, должен ли файл быть embedded-resource (или просто "ресурс" - термины, которые иногда я буду использовать взаимозаменяемо). Если это так, тогда вы захотите создать файл в пути к классам и получить к нему доступ через URL-адрес. Первое, что вам нужно сделать (в данном конкретном случае) - убедиться, что файл встроен в путь к классам. С файлом в корне проекта вы должны настроить сборку для включения файла. Но если вы поместите файл в src или в некоторый каталог ниже, то сборка по умолчанию должна поместить его в путь класса.

Вы можете получить доступ к ресурсу classpath несколькими способами. Вы можете использовать класс Class , у которого есть метод getResourceXxx , из которого вы используете для получения ресурсов classpath.

Например, если вы изменили структуру проекта на ProjectRoot\src\resources\word.txt , вы можете использовать это:

getResourceAsStream возвращает InputStream , но получает URL-адрес под капотом. Кроме того, вы можете получить URL , если это вам нужно. getResource() вернет URL

Для пользователей Maven, где структура каталогов похожа на src/main/resources , содержимое папки resources помещается в корень пути к классам. Поэтому, если у вас есть файл, вы можете использовать getResourceAsStream("/thefile.txt")

Ответ 2

Относительные пути могут использоваться, но они могут быть сложными. Лучшее решение - узнать, где хранятся ваши файлы, то есть распечатать папку:

Этот код должен печатать папку, в которой он ищет. Поместите там файл, и вам будет хорошо.

Ответ 3

Ваш файл должен находиться непосредственно под папкой проекта, а не внутри любой другой подпапки.

Если папка вашего проекта названа так, например. AProject , он должен находиться в том же месте, что и ваша папка src .

Ответ 4

Я думаю, что он всегда кипит до classpath . сказав, что если вы запустите из той же папки, где ваш .class затем измените Scanner input = new Scanner(new File("word.txt")); на Scanner input = new Scanner(new File("./word.txt")); , который должен работать

Ответ 5

Убедитесь, что при создании txt файла, который вы не введете имя "name.txt", просто введите "имя". Если вы наберете "name.txt", Eclipse увидит его как "name.txt.txt". Это решило это для меня. Также сохраните файл в папке src, а не в папке .java, одна папка вверх.

Ответ 6

Ответ 7

Я читал путь из файла свойств и не упоминал, что в конце было пространство. Убедитесь, что у вас его нет.

Ответ 8

У меня такая же проблема, но знаете почему? потому что я не поместил.txt в конец моего Файла, и поэтому это был Файл не textFile, вы можете сделать только две вещи:

при создании нового File, вы должны указать имя файла, а не только каталог, в который вы хотите поместить свой файл.

попробуйте что-то вроде

не совсем случай этого вопроса, но может быть полезным. Я получил это исключение, когда я вызываю mkdirs () в новом файле вместо его родителя

File file = new java.io.File(path);//file.mkdirs(); // wrong! file.getParentFile().mkdirs(); // correct!if (!file.exists())

у меня поиск этой проблемы и я получил следующие ответы:

ваша проблема будет решена

вам нужно установить разрешение для пользовательских элементов управления .

убедитесь, что каталог существует, у вас есть разрешение на доступ к нему и добавьте файл в путь для записи журнала:

Решение:

1. Добавить всю папку .minecraft в исключение антивируса.

Добавление в белый список папки антивируса 360 Total Security

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

Могут попадать под блокировку разные файлы, к примеру:

java.io.FileNotFoundException: C:UsersuserAppDataRoaming.minecraftversions1.14.1nativesOpenAL32.dll (Отказано в доступе).

java.io.FileNotFoundException: C:UsersuserAppDataRoaming.minecraftversions1.14nativeslwjgl_opengl32.dll (Отказано в доступе).

java.io.FileNotFoundException: C:UsersuserAppDataRoaming.minecraftversions1.14nativeslwjgl32.dll (Отказано в доступе).

Если Ваша проблема остаётся актуальной, запросите поддержку у TLauncher:

Пример

Перегрузки

Инициализирует новый экземпляр класса FileNotFoundException с указанными данными о сериализации и контексте. Initializes a new instance of the FileNotFoundException class with the specified serialization and context information.

Причины ошибки «Отказано в доступе к указанному файлу»

Среди причин появления проблемы следует отметить следующие:

Картинка Virus Detected

  • Доступ заблокировал вирусный зловред;
  • Доступ блокирует антивирусная программа или системный брандмауэр;
  • Доступ потерян вследствие случайного сбоя ПК;
  • Пользователь запускает файл не от имени администратора;
  • Запрашиваемый пользователем файл в данный момент недоступен (в частности, это касается доступа к сетевым «расшареным» файлам и папкам, расположенным на других компьютерах);
  • Нужный файл был удалён или перемещён в другое место;
  • Требуемый файл или его ярлык на рабочем столе повреждены;
  • Виндовс по различным причинам заблокировала доступ к упомянутому файлу.

Чтобы решить возникшую ошибку «Отказано в доступе к указанному файлу. Возможно у вас нет нужных прав» необходимо воспользоваться перечнем способов, о которых я расскажу ниже. Но прежде чем воспользоваться приведёнными советами, попробуйте просто запустить нужный файл от имени администратора (наводим на него курсор, жмём на правую клавишу мыши, и выбираем « Запуск от имени администратора »), это может помочь решить возникшую проблему.

2 ответа 2

Иногда такое происходит, когда вы пытаетесь писать в папку, а не в файл. Особенно C:/SP, без расширения файла похоже на папку. Проверьте, не имеет ли место быть эта ситуация и отпишитесь.

Windows запрещает запись в корень системного диска без админских прав.

А ещё подозрения вызывает направление слешей.

Способ №2. Временно отключаем антивирус и брандмауэр

Второй наиболее часто встречающейся причиной дисфункции является блокировка доступа к нужному файлу со стороны антивируса ибрандмауэра. Обычно они осуществляют блокировку в ситуации, когда содержимое файла вызывает существенные подозрения на присутствие в нём вредоносного ПО. Если вы твёрдо уверены в содержимом этого файла, тогда попросту временно отключите ваш антивирус и брандмауэр, и попытайтесь запустить нужный файл . В некоторых случаях помогло лишь полное удаление антивирусной программы и внешнего брандмауэра (особенно это касается «Comodo firewall»).

Способ №6. Проверяем целостность файловых компонентов системы при отказе в доступе

Нужно запустить командную строку на компьютере от имени администратора, и в ней введите:

После окончания проверки перезагрузите ваш ПК.

Способ №8. Создаём новый профиль пользователя при отсутствии нужных прав

В ряде случаев возникновение данной ошибки обусловлено повреждённым профилем пользователя. Рекомендуется создать новый профиль пользователя с административными правами , и уже с него запустить проблемный файл, проблема «отказано в доступе» может быть исправлена.

Способ №9. Используем сторонние программы для восстановления доступа к файлу

Если вирус ранее скрыл нужный файл от видимости (и доступа), рекомендуется воспользоваться сторонним софтом , уровня «Data Recovery Wizard» и аналогов, которые проверят и восстановят доступ к скрытым ранее файлам.

Читайте также: