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

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

C:ColdFusion8runtimejrelib>keytool -list -storepass changeit -noprompt -keystore

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

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

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

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

  1. C:CFusionMXruntimejrelib>keytool -list -storepass changeit -noprompt -keystore

  2. C:CFusionMXruntimejrelibsecuritycacerts

EDIT:

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

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

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

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

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

4 ответов


вы получаете эту ошибку, потому что keytool исполняемый файл под , а не lib каталог в вашем примере. И вам нужно будет добавить местоположение вашего keystore также в командной строке. Есть очень хорошая ссылка на все это здесь - справка Jrun / импорт сертификатов / хранилища сертификатов / ColdFusion

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

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

    cf_root / runtime/jre/lib/безопасность / cacerts

  • Multiserver / J2EE на конфигурации JRun 4:

    jrun_root/jre/lib/безопасность / cacerts

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

    jdk_root/jre/lib/безопасность / cacerts

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


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

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

    cf_root / runtime/bin / keytool

  • Multiserver / J2EE на конфигурации JRun 4:

    jrun_root/jre/bin / keytool

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

    jdk_root/bin / keytool

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

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

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

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

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


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

    set PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_80\bin
    
  2. закройте и откройте окно CLI


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


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

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

(в зависимости от JRE существует в случае 64bit).

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