我在使用密钥工具获取 SHA1 证书时遇到问题

2022-09-02 11:05:30

我正在尝试使用以下 comand 在 macos sierra 上找到我的签名密钥存储的 SHA1 哈希:

keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android

结果如下所示:

别名: androiddebugkey
创建日期: Oct 25, 2017
输入类型: PrivateKeyEntry
证书链的长度: 1
证书 [1]:
keytool error: java.util.IllegalFormatConversionException: d != java.lang.String java.util.IllegalFormatConversionException: d != java.lang.String at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4331) at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2846) at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2800) at java.base/java.util.Formatter.format(Formatter.java:2581) at java.base/java.util.Formatter.format(Formatter.java:2517) at java.base/java.lang.String.format(String.java:2747) at java.base/sun.security.tools.keytool.Main.withWeak(Main.java:3151) at java.base/sun.security.tools.keytool.Main.printX509Cert(Main.java:3182) at java.base/sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995) at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1212) at java.base/sun.security.tools.keytool.Main.run(Main.java:397) at java.base/sun.security.tools.keytool.Main.main(Main.java:390)

据我所知,该命令正在工作,这不是文件或密码的问题,在我看来,java中的内部错误,它是否缺少一些java包?我使用的是 Java SDK 9.0.1


答案 1

我发现问题来自最新版本的Keytool in 和 。默认情况下,使用系统默认语言,这似乎在某些语言(在我的情况下是法语)上不再正常工作。JDK8.151JDK9keytool

通过使用参数强制以英语输出就足够了-J-Duser.language=en

因此,请尝试改用以下命令行:

keytool -J-Duser.language=en -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android

另请参阅我的答案:https://stackoverflow.com/a/47181882/5292951


答案 2

推荐