Java I';我在使用keytool获取SHA1证书时遇到问题

Java I';我在使用keytool获取SHA1证书时遇到问题,java,android,certificate,keystore,keytool,Java,Android,Certificate,Keystore,Keytool,我正在尝试使用以下comand在macos sierra上查找我的签名密钥存储的SHA1哈希: keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android 结果如下所示: 别名​​名称:androiddebugkey创建日期:2017年10月25日 输入类型:PrivateKeyEntry证书链长度:1 证书[1]:密钥工具错误: j

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

keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android
结果如下所示:

别名​​名称:androiddebugkey创建日期:2017年10月25日 输入类型:PrivateKeyEntry
证书链长度:1
证书[1]:
密钥工具错误: java.util.IllegalFormatConversionException:d!=java.lang.String java.util.IllegalFormatConversionException:d!=位于的java.lang.String java.base/java.util.Formatter$FormattSpecifier.failConversion(Formatter.java:4331) 在 java.base/java.util.Formatter$FormattSpecifier.printInteger(Formatter.java:2846) 在 java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2800) 位于java.base/java.util.Formatter.format(Formatter.java:2581) java.base/java.util.Formatter.format(Formatter.java:2517)位于 java.base/java.lang.String.format(String.java:2747)位于 java.base/sun.security.tools.keytool.Main.withWeak(Main.java:3151)位于 java.base/sun.security.tools.keytool.Main.printX509Cert(Main.java:3182) 在 java.base/sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995) 在 java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1212) 位于java.base/sun.security.tools.keytool.Main.run(Main.java:397) java.base/sun.security.tools.keytool.Main.Main(Main.java:390)


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

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

使用参数
-J-Duser.language=en

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

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

另请参见我的答案:

有更简单的方法:谢谢你,说真的,我不知道该怎么办我也有同样的问题同样的问题,你的答案对我很有用。非常感谢。我很高兴这有帮助。我希望他们能在下一个版本中修复它,因为在某些情况下这显然是一个阻塞错误。谢谢!也为我工作!:双拇指:)