Java 用一个命令创建密钥库文件

Java 用一个命令创建密钥库文件,java,android,linux,command-line-interface,keystore,Java,Android,Linux,Command Line Interface,Keystore,我有一个脚本,可以为android应用程序创建并签署密钥库文件 它工作得非常好,但我宁愿让它在没有人为干预的情况下运行 我必须创建密钥库: keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 然后提示我使用终端手动输入以下值:密钥库密码、全名、组织单位、组织名称、城市、州、县代码、密钥密码 我必须在应用程序上签名的内容:

我有一个脚本,可以为android应用程序创建并签署密钥库文件

它工作得非常好,但我宁愿让它在没有人为干预的情况下运行

我必须创建密钥库:

keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
然后提示我使用终端手动输入以下值:密钥库密码、全名、组织单位、组织名称、城市、州、县代码、密钥密码

我必须在应用程序上签名的内容:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my-release-key.keystore my_application.apk alias_name
然后,这会提示我输入密钥库的密码短语

我是否可以将这些值作为参数传递进来,这样完整的脚本就可以在不需要任何其他交互的情况下运行

附言:我正在使用Ubuntu14.04LTS


感谢您的时间:)

您可以执行以下操作来生成密钥库:

keytool -genkey -alias replserver \
    -keyalg RSA -keystore keystore.jks \
    -dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" \
    -storepass password -keypass password

这里有一个很好的参考:。对于jarsigner,密钥库密码有一个“storepass”参数。如果你在脚本中同时输入了这两个参数,你应该会做得很好。

请记住,如果你输入密码等作为参数,它们可以存储在你的历史记录中/logs@fractalwrench谢谢你引起我的注意,我需要找到解决方法。Env vars是避免将密码用作纯文本参数的经典解决方法。添加
-deststoretype pkcs12
以现在推荐的行业标准
pkcs12
格式创建密钥库。另一个好的选择是
-keysize4096