67

我在使用 open SuSE 12.1 的两台 Linux 机器上都安装了 Android SDK。我已经多次使用两台机器成功构建 Android 应用程序,并使用调试密钥和我自己的密钥库中的发布密钥对它们进行签名,所以它应该在每台机器上的某个地方。

使用命令

jarsigner

但是,在两台机器上都返回命令未找到错误。我查看了 Android SDK 文件夹、Windows 上的 JDK 文件夹和 /usr/lib64/jvm/,但它不是我看过的任何地方。

我认为它必须使用不同的名称。我也跑过:

 find -name jarsigner

在Linux机器上的整个系统都没有成功。

4

10 回答 10

102

它位于您的 java JDK 安装 (Java SE) 的 bin 文件夹中。如果您只安装了 JRE,您可能没有它。

于 2012-08-27T02:56:30.453 回答
18

%JAVA_HOME%\bin\jarsigner

你可以在那里找到 jarsigner。先安装jdk。

于 2012-08-27T07:11:54.797 回答
11

为了子孙后代,如果您尝试使用 jarsigner 对带有密钥库的 jar 文件(例如小程序的文件)进行签名,则需要在从密钥库所在的文件夹中运行命令时引用 jarsigner:

cd "C:\Program Files\Java\jre(version#)\bin"

然后

"C:\Program Files\Java\jdk(version#)\bin\jarsigner.exe" -keystore mykeystore (PATH TO YOUR .JAR)\MyJarFile.jar alias

以上内容可能很明显,但我尝试了几次,因为我试图在 JDK 文件夹中调用 jarsigner,它不知道我的密钥库在哪里(在 jre 目录中!),所以我希望这会帮助那些谁想看到这种情况的可用语法。

于 2013-11-02T04:03:05.277 回答
8

如果您使用的是 Mac 或 Linux,只需转到终端并输入:

whereis jarsigner

它将为您提供 jarsigner 的位置

于 2017-02-27T14:30:54.907 回答
3

如果找不到,请从此处下载并安装 Java JDK

于 2012-11-13T15:04:52.157 回答
2

就我而言,我试试这个:

sudo apt install openjdk-11-jdk-headless
sudo apt install openjdk-8-jdk-headless

我用openjdk

于 2020-03-01T15:32:01.240 回答
1

当您在 JAVA_HOME 变量中只安装了 JRE 而不是 JDK 时,会出现此错误。不幸的是,您不能将它们都安装在同一个变量中,因此您只需要使用新的 JDK 安装路径覆盖该变量。

该过程应该与您安装 JRE 的方式相同

于 2015-01-18T08:23:58.280 回答
1

这将为您安装 jdk 并检查其jarsigner内部

sudo apt install -y default-jdk

找到可以使用的 jarsignerwhereis jarsigner

于 2020-06-21T14:15:08.510 回答
1

对我来说,解决方案是设置 JDK 的全局变量路径。见这里: https ://appopus.wordpress.com/2012/07/11/how-to-install-jdk-java-development-kit-and-jarsigner-on-windows/

于 2016-05-16T14:26:53.663 回答
0

查找/usr/lib/jvm/java-8-oracle/bin/jarsigner -verbose -sigalg SHA1withRSA

于 2018-09-27T00:38:31.700 回答