How to pass jarsigner.exe passphrase via commandline?

Stepan Yakovenko picture Stepan Yakovenko · Feb 1, 2017 · Viewed 15.4k times · Source

I know that this is unsafe, but is there any easy way to pass passphrase to the jarsigner.exe:

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

Enter Passphrase for keystore:

I am running it in batch file.

Answer

kriegaex picture kriegaex · Feb 8, 2017

Well, why do you not simply use the corresponding parameters?

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

Broken down into separate lines for better readability (but you have to put all parameters on one line, of course):

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)

Update: Please note with regard to passwords that

  • enclosing passwords in double or single quotes is optional if the passwords contain no special characters.
  • on the Windows command line you have to use double quotes enclosing passwords with special characters such as space. I am mentioning that because someone previously edited my answer and used single quotes which would simply fail on the Windows command line.
  • on UNIX-like systems like Linux or also in the Windows Git Bash or Cygwin you can use both double or single quotes, but with double quotes beware of shell expansion.