Java io filenotfoundexception manifest mf не удается найти указанный файл
Я выполнил следующие шаги, которые я узнал из онлайн-руководств keytool и SSL cert:
Экспорт сертификатов в путь на моем компьютере, сертификаты были сохранены как .cer
Используется опция импорта keytool. Приведенная ниже команда выполняется без ошибок.
Мне было предложено ввести пароль в командной строке, после чего я был аутентифицирован.
В окне cmd были напечатаны некоторые данные сертификата и подписи, и мне был задан вопрос:
Отображается приглашение cmd
Сертификат был добавлен в хранилище ключей
Наконец, когда я проверил хранилище ключей, сертификат SSL не был добавлен, и мое приложение дает то же исключение, которое я получал раньше при попытке подключения:
ОТВЕТЫ
Ответ 1
Это может произойти, если вы не запускаете командную строку в режиме администратора. Если вы используете Windows 7, вы можете запустить, введите cmd и нажмите Ctrl + Shift + enter. Это откроет командную строку в режиме администратора. Если нет, вы также можете перейти к запуску → все программы → аксессуары → щелкнуть правой кнопкой мыши командную строку и щелкнуть "Запуск от имени администратора".
Ответ 2
У меня была такая же проблема в Windows, и я смог ее решить, запустив cmd.exe в качестве администратора (щелкните правой кнопкой мыши в меню "Пуск", затем "Запуск от имени администратора" ).
Ответ 3
У меня была та же проблема при импорте сертификата в локальное хранилище ключей. Всякий раз, когда я выдаю команду keytool, я получил следующую ошибку.
Сертификат был добавлен в хранилище ключей keytool error: java.io.FileNotFoundException: C:\Program Files\Java\jdk1.8.0_151\jre\lib\security (доступ запрещен)
Следующее решение работает для меня.
1) убедитесь, что вы запускаете командную строку на Rus в режиме администратора
2) Измените текущий каталог на% JAVA_HOME%\jre\lib\security
3), затем выполните команду ниже
keytool -import -alias "mycertificatedemo" файл "C:\Users\name\Downloads\abc.crt" -keystore cacerts
3) введите пароль
Убедитесь, что вы указываете " cacerts" только в значении параметра -keystore, поскольку я передавал полный путь, как "C **:\Program Files\Java\jdk1.8.0_151\JRE\Lib\безопасность **".
Надеюсь, что это сработает
Ответ 4
Проверьте разрешения на запись в хранилище ключей.
Ответ 5
Для пользователей Mac убедитесь, что sudo и при запросе сначала введите пароль администратора, за которым последует пароль хранилища ключей, который обычно должен быть "changeit", если вы его не изменили.
Ответ 6
Если вы используете windows8:
Ответ 7
Я даже запускаю командную строку в качестве администратора, но для меня это не с ошибкой ниже.
Если путь к ключевому инструменту отсутствует в ваших системных путях, вам нужно будет использовать полный путь для использования keytool, который находится
Итак, команда должна быть как
который работал у меня.
Ответ 8
У меня та же проблема в Windows 10 при использовании PowerShell, но работает, если я использую cmd.
Ответ 9
Сертификат был добавлен в keytool хранилища ключей: ошибка: java.io.FileNotFoundException: (доступ запрещен)
Я получаю эту ошибку. Я попытался запустить в режиме администратора. Это не сработало. Я скопировал папку jdk в другое место и запустил команду в каталоге keytool.exe. Тогда это сработало.
Ответ 10
Вы можете дать себе разрешение на устранение этой проблемы.
Щелкните правой кнопкой мыши на cacerts > выберите свойствa > выберите вкладку Securit > Разрешить все разрешения для всех имен групп и пользователей.
Так что я некоторое время застрял на этом. В принципе, у меня есть файл, созданный с именем "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, вы можете сделать только две вещи:
Он находится в том же каталоге, что и мой файл 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, вы должны сделать всего две вещи:
- Поместите текстовый файл в корневой каталог (e.x если у вас есть проект с именем HelloWorld, просто щелкните правой кнопкой мыши файл HelloWorld в каталоге пакета и создайте файл
- Сохраните как этот файл с любым именем, которое вы хотите, но с .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 файл, и тем не менее он все еще дает мне эту ошибку.
спросил(а) 2020-03-27T01:12:41+03:00 1 год, 8 месяцев назадПоместите 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
Читайте также: