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命令。

我假设在doc中提到了两个独立的命令:

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

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

编辑:

那么我可以使用以下过程而不是答案中提到的复杂步骤吗?

  1. 当我在我的浏览器中打开WSDL时,我看到了Lock图标,当我点击它时打开了一个“Certificate”窗口
  2. 然后我点击“安装证书”选项

  3. 打开证书导入向导窗口,我单击Next我看到两个选项

    • a)根据证书类型自动选择证书存储(自动选择此选项)
    • b)将所有证书放在以下商店中

我决定选择选项(b) ,但我很困惑我应该选择哪个证书商店。

您收到该错误是因为keytool可执行文件位于bin目录下,而不是示例中的lib目录。 您还需要在命令行中添加keystore的位置。 这里有一个很好的参考–Jrun帮助/导入证书| 证书店| ColdFusion的

默认信任库是JRE的cacerts文件。 此文件通常位于以下位置:

  • 服务器配置:

    cf_root /运行/ JRE / lib / security中/ cacerts中

  • JRun 4配置上的Multiserver / J2EE:

    jrun_root / JRE / lib / security中/ cacerts中

  • Sun JDK安装:

    jdk_root / JRE / lib / security中/ cacerts中

  • 请参阅其他J2EE应用程序服务器和JVM的文档


keytool是Java SDK的一部分,可以在以下位置找到:

  • 服务器配置:

    cf_root /运行/斌/密钥工具

  • JRun 4配置上的Multiserver / J2EE:

    jrun_root / JRE /斌/密钥工具

  • Sun JDK安装:

    jdk_root /斌/密钥工具

  • 请参阅其他J2EE应用程序服务器和JVM的文档

因此,如果您导航到keytool可执行文件所在的目录,您的命令行将如下所示:

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

您需要提供路径信息,具体取决于您运行keytool命令的位置以及证书文件所在的位置。

此外,请确保您正在更新ColdFusion正在使用的正确cacerts文件。 如果您在该服务器上安装了多个JRE。 您可以在“系统信息”下validation管理员使用的JRE ColdFusion。 查找Java Home行。

  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存在于64位的情况下)。

因为未设置Java Path,所以您只需在命令行执行此操作,然后执行keytool import命令。