64

我试图从 Java bin 目录执行 keytool,但我收到警告 bash: keytool: command not found 的错误。

root@xxxxxx]# keytool -genkey -alias mypassword -keyalg RSA

bash: keytools: command not found
4

13 回答 13

78

这些是解决我的问题的步骤:

  • 搜索我的java安装路径

    find / -name jre
    
  • 移动到 java 目录(我的服务器上安装了 jre)

    cd /path/to/jre/bin
    
  • 使用 keytool 命令创建 SSL 证书

    ./keytool -genkey -alias [mypassword] -keyalg [RSA]
    
于 2013-06-10T09:56:52.650 回答
20

采用

./keytool -genkey -alias mypassword -keyalg RSA
于 2013-05-02T12:26:27.413 回答
7

确保已安装 jre。

cd /path/to/jre/bin/folder

由于 jre 的 bin 文件夹中存在 keytool 文件,因此在上面的命令中给出 bin 的路径。

然后你可以这样做:

keytool -genkey -alias aliaskeyname -keyalg RSA -keystore C:\mykeystore

附加选项 -keystore 将帮助您指定生成自签名证书的路径。

于 2014-05-09T18:15:59.753 回答
6

找到您的 jre 位置 ::sudo find / -name jre 然后 ::sudo update-alternatives --install /usr/bin/keytool keytool /opt/jdk/<jdk.verson>/jre/bin/keytool 100

于 2017-10-31T07:02:40.850 回答
6

如果您正在寻找,keytool因为您正在使用 Android Studio / Google Firebase,那么 Android Studio 捆绑了一个 keytool。解压 zip 文件后,keytool 的路径为android-studio/jre/bin.

于 2018-05-16T16:06:11.747 回答
5

似乎调用会sudo update-alternatives --config java影响 keytool。根据选择的 Java 版本,它会改变 keytool 是否在路径上。我不得不选择开放的 JDK 而不是 Oracle 的 JDK 才能获得bash: /usr/bin/keytool: No such file or directory.

于 2015-09-12T00:28:08.890 回答
5

这对我有用

sudo apt install openjdk-8-jre-headless
于 2020-08-19T13:06:52.733 回答
3

Keytool 随您的 Java 库一起提供。因此,您必须从 /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/bin 目录执行 Keytool 命令。或者您可以将 JAVA_HOME 添加到您的环境变量 (Windows) 或 ~/.bash_profile (Linux)

于 2018-11-21T15:15:48.937 回答
2

你试过:

sudo apt-get install oracle-java6-installer --reinstall

和:

sudo update-alternatives --config keytool
于 2014-08-29T22:56:00.313 回答
1

你也可以像这样把它放在一行上:

/path/to/jre/bin/keytool -genkey -alias [mypassword] -keyalg [RSA]

想将此作为对 piet.t 答案的评论,但我没有足够的代表发表评论。

请参阅本文的“签名”部分,该部分描述了如何在不将工作目录更改为路径的情况下访问 keytool.exe: https ://flutter.dev/docs/deployment/android#signing-the-app

请注意,他们说您可以输入空格分隔的文件夹名称,如 /"Program Files"/ 带引号,但我发现在 bash 中我必须用反斜杠(如 /Program\ Files/)分隔。

于 2020-03-11T23:37:48.210 回答
1

如果 jre 已正确安装在您的机器上,则在 jre 或 jre/bin 中查找 keytool

  1. 要查找 jre 的安装位置,请使用此

    sudo find / -name jre

  2. 然后在 path_to_jre 或 path_to_jre/bin 中寻找 keytool

  3. cd 到 keytool 位置

  4. 然后运行 ​​./keytool

  5. 确保将路径添加到 $PATH 通过

    导出 PATH=$PATH:location_to_keytool

  6. 为了确保你在这之后得到它,运行

    密钥工具在哪里

  7. 为将来编辑您的 bash 或 zshrc 文件并获取它

于 2020-03-26T18:24:04.923 回答
1

如果您不使用 openjdk,请使用以下命令设置您的 keytool。

sudo update-alternatives --install "/usr/bin/keytool" "keytool" "/usr/lib/jvm/java8/jdk1.8.0_251/bin/keytool" 1

sudo update-alternatives --set keytool /usr/lib/jvm/java8/jdk1.8.0_251/bin/keytool

这对我有用!

于 2020-06-19T10:50:37.430 回答
0

请按照以下步骤操作:

  1. 首先使用命令设置域setDomain.sh转到domain/bin位置并执行./setDomain.sh命令

  2. 转到java/bin文件夹并执行keytool命令。

keytool -genkey -keyalg RSA -kaysize 2048 -alias name -kaystore file.jks

于 2017-09-04T14:30:00.733 回答