如何通过命令行传递 jarsigner.exe 密码?

How to pass jarsigner.exe passphrase via commandline?

我知道这不安全,但是有什么简单的方法可以将密码短语传递给 jarsigner.exe:

jrsigner.exe -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ...

Enter Passphrase for keystore:

我在批处理文件中运行它。

嗯,为什么不直接使用相应的参数呢?

jarsigner -keystore my-keystore -storetype jceks -storepass "test" -keypass "test" my-archive.jar xander

分成几行以提高可读性(当然,您必须将所有参数放在一行中):

jarsigner
  -keystore my-keystore    # keystore path name
  -storetype jceks         # keystore type (whatever format yours is in)
  -storepass "test"        # keystore password
  -keypass "test"          # private key password
  my-archive.jar           # JAR path name
  xander                   # key name (alias)

更新:请注意密码

  • 如果密码不包含特殊字符,用双引号或单引号括住密码是可选的。
  • 在 Windows 命令行中,您必须使用双引号括起带有特殊字符的密码,例如 space。我提到的是因为之前有人编辑了我的答案并使用了单引号,这只会在 Windows 命令行上失败。
  • 在 UNIX-like 系统如 Linux 或 Windows Git Bash 或 Cygwin 中你可以同时使用双引号或单引号,但是双引号小心 shell 扩展。