jarsigner “只能指定一个别名”

问题描述 投票:0回答:6

在 Windows 命令提示符中:

>keytool -genkey -alias me
>keytool -selfcert -alias me
>jarsigner myJar.jar me
Only one alias can be specified

我在网上找不到有关此错误的任何信息。显然我在这里只指定了一个别名。我可能做错了什么?

jarsigner
6个回答
29
投票

我遇到了同样的错误。

我通过重命名路径中的文件夹解决了这个问题

c:\this is a folder\ replaced with c:\this_is_a_folder\

jarsigner 不喜欢文件夹中有空格


4
投票

只需在文件名周围加引号并加空格即可。对于任何程序,您都需要引用其中包含空格的参数。与 jarsigner 无关。


3
投票

删除文件夹名称中的空格,例如

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.jks D:\AndroidProject\CheckFinalCodeNew\CheckFinalCode\platforms ndroid uild\outputs pk ndroid-release-unsigned.apk my-alias

问题就解决了


0
投票

即使我在路径周围加了引号,而且当我将所有内容移动到没有空格的文件夹名称时,我还是收到了此错误。路径中的空格原来是红鲱鱼

令人困惑的是,Jarsigner 可以在命令提示符窗口中工作,但不能从 Powershell、Windows 终端应用程序或 Ant 任务(使用

exec
作业)工作。

原来我从 PDF 中复制并粘贴了基本的 Jarsigner 命令,并且 命令中的一个连字符不是真正的连字符,而是一些 Unicode 分身。

(我可能应该让 @mark-rabjohn 写下这篇文章并获得荣誉,因为他的脑电波检查了这一切都是 ASCII,但由于这浪费了我生命中的六个小时,我只是觉得不那么慷慨。)


0
投票

对我来说,是空格导致了同样的错误。

我之前的 CLI 命令是

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ${KEYSTORE_FILE} ${UNSIGNED_APK} key0

然后我用双引号括住变量,这解决了我的问题

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore "${KEYSTORE_FILE}" "${UNSIGNED_APK}" key0

-2
投票

我遇到了同样的问题,并通过从 jdk 6 切换到 jarsigner 解决了它。虽然我使用 jdk 7 中的 keytool 创建了我的证书,但我无法使用它的 jarsigner 对其进行签名。

© www.soinside.com 2019 - 2024. All rights reserved.