44

我正在尝试使用本文中的说明在我的 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) 将所有证书放在以下存储中

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

4

7 回答 7

47
  1. 将 JDK 的/bin文件夹添加到PATH环境变量中。您可以在系统设置 > 环境变量下或通过 CLI 执行此操作:

    set PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_80\bin
    
  2. 关闭并重新打开您的 CLI 窗口

于 2016-10-17T13:26:10.553 回答
29

您收到该错误是因为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 行。

于 2013-10-17T16:18:04.623 回答
10

以管理员身份运行 CMD这对我有用

于 2014-10-17T07:07:15.337 回答
2

执行以下命令:

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

(以JRE64 位的情况为准)。

因为您的 Java 路径未设置,所以您可以在命令行执行此操作,然后执行keytool导入命令。

于 2016-06-01T18:29:54.003 回答
2

我终于解决了问题!!!您应该首先通过导航到:设置系统变量的jre路径:

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

系统变量下点击新建

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

其中变量值应该是 JDK 的 bin 文件夹的路径。

然后像这样打开命令提示符并将目录更改为相同的JDK的bin文件夹

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

于 2019-09-27T06:15:19.547 回答
1

一个简单的错误解决方案是您首先需要在命令提示符下更改文件夹目录。默认情况下,在命令提示符或终端(底部的 Android Studio 内)选项卡中,路径设置为 C:\Users#您选择的 PC 的名称\AndroidStudioProjects#app name\flutter_app> 相应更改:- C:\Users #您选择的 PC 的名称\AndroidStudioProjects#app 名称\flutter_app>cd\

输入 **cd** (#after flutter_app>),只输入 cd\ 而不是逗号

然后输入 cd Program Files\Java\jre1.8.0_251\bin(#记住要正确检查jre的文件名)

现在键入keytool -list -v -keystore "%USERPROFILE%.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android (没有任何空格键入命令)。

要运行的代码的屏幕截图

于 2020-05-03T20:14:59.697 回答
0

确保设置了 JAVA_HOME 和环境变量中的路径。PATH 应该能够找到 keytools.exe

打开“Windows 搜索”并搜索“环境变量”

在“系统变量”下单击“新建...”按钮并输入 JAVA_HOME 作为“变量名称”,在“变量值”下输入 Java JDK 目录的路径应该类似于 C:\Program Files\Java\jre1.8.0 _231

于 2020-01-05T06:16:20.870 回答