Keytool 未被识别为内部或外部命令

新手上路,请多包涵

我正在尝试使用 本文中的说明在 我的 Java 运行时中发现受信任的权威列表。当我输入以下命令时:

 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 时,我看到了 Lock 图标,当我点击它时,会打开一个“Certificate”窗口

  2. 然后我点击“安装证书”选项

  3. 证书导入向导窗口打开,我点击下一步我看到两个选项

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

我决定选择选项 (b) ,但我很困惑我应该在这里选择哪个证书存储。

原文由 Jack 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

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

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

  • 服务器配置:

cf_root/runtime/jre/lib/security/cacerts

  • JRun 4 配置上的多服务器/J2EE:

jrun_root/jre/lib/security/cacerts

  • Sun JDK安装:

jdk_root/jre/lib/security/cacerts

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

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

  • 服务器配置:

cf_root/运行时/bin/keytool

  • JRun 4 配置上的多服务器/J2EE:

jrun_root/jre/bin/keytool

  • Sun JDK安装:

jdk_root/bin/keytool

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

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

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

您需要根据运行 keytool 命令的位置以及证书文件所在的位置提供路径信息。

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

原文由 Miguel-F 发布,翻译遵循 CC BY-SA 3.0 许可协议

  1. 将 JDK 的 /bin 文件夹添加到 PATH 环境变量。您可以在系统设置 > 环境变量下或通过 CLI 执行此操作:
    set PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_80\bin

  1. 关闭并重新打开 CLI 窗口

原文由 martoncsukas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题