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

Keytool is not recognized as an internal or external command(Keytool 未被识别为内部或外部命令)
本文介绍了Keytool 未被识别为内部或外部命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 本文中的说明.当我输入以下命令时:

C:ColdFusion8
untimejrelib>keytool -list -storepass changeit -noprompt -keystore

我收到以下错误:

<块引用>

'keytool' 不是内部或外部命令、可运行程序或批处理文件.

我检查了包含我的 keytool 可执行文件的目录是否在路径中.(在我的 Windows 7 机器上,它位于 C:Program Files (x86)Javajre6in)尽管如此,命令行将无法识别 keytool 命令.

我假设文档中提到了两个单独的命令:

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

  2. C:CFusionMX untimejrelibsecuritycacerts

顺便说一句,我可以使用以下过程而不是答案中提到的复杂步骤吗?

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

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

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

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

解决方案

你得到这个错误是因为 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/runtime/bin/keytool

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

    jrun_root/jre/bin/keytool

  • Sun JDK 安装:

    jdk_root/bin/keytool

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

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

keytool -list -v -keystore JAVA_HOMEjrelibsecuritycacert -storepass changeit

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

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

I am trying to discover the list of trusted authorities in my Java Runtime using the instructions in this article. When I typed the command below:

C:ColdFusion8
untimejrelib>keytool -list -storepass changeit -noprompt -keystore

I got the following error:

'keytool' is not recognized as an internal or external command, operable program or batch file.

I checked that the directory containing my keytool executable is in the path. (On my Windows 7 machine, it's in C:Program Files (x86)Javajre6in) Despite this, the command line will not recognise the keytool command.

I'm assuming that there are two separated commands mentioned in the doc:

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

  2. C:CFusionMX untimejrelibsecuritycacerts

EDIT:

By the way can I use the following process instead of complex steps mentioned in the answer?

  1. When I opened the WSDL into my browser, I saw the Lock icon, when I clicked on it a "Certificate" window opened
  2. Then I clicked on "Install Certificate" option

  3. A Certificate Import Wizard window opened, I clicked on Next I saw two options

    • a) Automatically select the certificate store based on the type of certificate (this option was selected automatically)
    • b) Place all certificates in the following store

I decided to select option (b), but I'm confused which certificate store I should select here.

解决方案

You are getting that error because the keytool executable is under the bin directory, not the lib directory in your example. And you will need to add the location of your keystore as well in the command line. There is a pretty good reference to all of this here - Jrun Help / Import certificates | Certificate stores | ColdFusion

The default truststore is the JRE's cacerts file. This file is typically located in the following places:

  • Server Configuration:

    cf_root/runtime/jre/lib/security/cacerts

  • Multiserver/J2EE on JRun 4 Configuration:

    jrun_root/jre/lib/security/cacerts

  • Sun JDK installation:

    jdk_root/jre/lib/security/cacerts

  • Consult documentation for other J2EE application servers and JVMs


The keytool is part of the Java SDK and can be found in the following places:

  • Server Configuration:

    cf_root/runtime/bin/keytool

  • Multiserver/J2EE on JRun 4 Configuration:

    jrun_root/jre/bin/keytool

  • Sun JDK installation:

    jdk_root/bin/keytool

  • Consult documentation for other J2EE application servers and JVMs

So if you navigate to the directory where the keytool executable is located your command line would look something like this:

keytool -list -v -keystore JAVA_HOMEjrelibsecuritycacert -storepass changeit

You will need to supply pathing information depending on where you run the keytool command from and where your certificate file resides.

Also, be sure you are updating the correct cacerts file that ColdFusion is using. In case you have more than one JRE installed on that server. You can verify the JRE ColdFusion is using from the administrator under the 'System Information'. Look for the Java Home line.

这篇关于Keytool 未被识别为内部或外部命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How can create a producer using Spring Cloud Kafka Stream 3.1(如何使用Spring Cloud Kafka Stream 3.1创建制片人)
Insert a position in a linked list Java(在链接列表中插入位置Java)
Did I write this constructor properly?(我是否正确地编写了这个构造函数?)
Head value set to null but tail value still gets displayed(Head值设置为空,但仍显示Tail值)
printing nodes from a singly-linked list(打印单链接列表中的节点)
Control namespace prefixes in web services?(控制Web服务中的命名空间前缀?)