Keytool не распознается как внутренняя или внешняя команда

Я пытаюсь открыть список доверенных полномочий в своем Java Runtime, используя инструкции в этой статье. Когда я набрал команду ниже:

C:\ColdFusion8\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore

Я получил следующую ошибку:

"keytool" не распознается как внутренняя или внешняя команда, операционная программа или командный файл.

Я проверил, что каталог, содержащий мой исполняемый файл keytool, находится в пути. (На моем компьютере с Windows 7 он находится в C:\Program Files (x86)\Java\jre6\bin). Несмотря на это, командная строка не распознает команду keytool.

Я предполагаю, что в документе есть две разделенные команды:

  1. C:\CFusionMX\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore

  2. C:\CFusionMX\runtime\jre\lib\security\cacerts

РЕДАКТИРОВАТЬ:

Кстати, я могу использовать следующий процесс вместо сложных шагов, упомянутых в ответе?

  1. Когда я открыл WSDL в своем браузере, я увидел значок блокировки, когда я нажал на него, открылось окно "Сертификат"
  2. Затем я нажал кнопку "Установить сертификат"

  3. Открылось окно мастера импорта сертификатов, я нажал кнопку "Далее". Я увидел два варианта

    • a) Автоматически выбирать хранилище сертификатов на основе типа сертификата (этот параметр был выбран автоматически)
    • б) Поместите все сертификаты в следующий магазин

Я решил выбрать вариант (b), но я путаю, какое хранилище сертификатов я должен выбрать здесь.

Ответ 1

Вы получаете эту ошибку, потому что исполняемый файл keytool находится в каталоге bin, а не в каталоге lib в вашем примере. И вам нужно будет добавить местоположение вашего keystore а также в командной строке. Здесь очень хорошая ссылка на все это - Jrun Help/Import certificate | Магазины сертификатов | Холодный синтез

Доверенным хранилищем по умолчанию является файл JRE cacerts. Этот файл обычно находится в следующих местах:

  • Конфигурация сервера:

    cf_root/выполнения /JRE/Library/безопасность/cacerts

  • Мультисервер/J2EE в конфигурации JRun 4:

    jrun_root/JRE/Library/безопасность/cacerts

  • Установка Sun JDK:

    jdk_root/JRE/Library/безопасность/cacerts

  • Проконсультируйтесь с документацией для других серверов приложений J2EE и JVM.


Keytool является частью Java SDK и может быть найден в следующих местах:

  • Конфигурация сервера:

    cf_root/выполнения /bin/Keytool

  • Мультисервер/J2EE в конфигурации JRun 4:

    jrun_root/JRE/бен /Keytool

  • Установка Sun JDK:

    jdk_root/бен /Keytool

  • Проконсультируйтесь с документацией для других серверов приложений J2EE и JVM.

Поэтому, если вы перейдете в каталог, в котором находится исполняемый файл keytool ваша командная строка будет выглядеть примерно так:

keytool -list -v -keystore JAVA_HOME\jre\lib\security\cacert -storepass changeit

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

Кроме того, убедитесь, что вы обновляете правильный файл cacerts, который использует ColdFusion. Если на этом сервере установлено несколько JRE. Вы можете проверить, что JRE ColdFusion использует администратор в разделе "Информация о системе". Найдите линию Java Home.

Ответ 2

  1. Добавьте папку JDK /bin в PATH окружения PATH. Вы можете сделать это в разделе "Системные настройки"> "Экологические переменные" или через CLI:

    set PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_80\bin
    
  2. Закрыть и снова открыть окно CLI

Ответ 3

Запустите cmd как запущен как администратор, это сработало для меня

Ответ 4

Выполните следующую команду:

set PATH="C:\Program Files (x86)\Java\jre7"

(в зависимости от того, какая JRE существует в случае 64 бит).

Поскольку ваш Java-путь не установлен, вы можете просто сделать это в командной строке, а затем выполнить команду import keytool.

Ответ 5

Я наконец-то решил проблему !!! Сначала вы должны установить jre путь к системным переменным, перейдя к ::

control panel > System and Security > System > Advanced system settings 

В разделе Системные переменные нажмите new.

Variable name: KEY_PATH
Variable value: C:\Program Files (x86)\Java\jre1.8.0_171\bin

Где значение переменной должно быть путем к вашей папке bin JDK.

Затем откройте командную строку и перейдите в ту же папку bin JDK, что и эта.

C:\Program Files (x86)\Java\jre1.8.0_171\bin 

затем вставьте,

keytool -list -v -keystore "C:\Users\user\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android   

ПРИМЕЧАНИЕ: люди путают JRE и JDK. Все, что я делал, относилось строго к jre