jarsigner在哪里?

71
我已经在Linux机器上安装了Android SDK,使用的是open SuSE 12.1。我曾多次使用这两台计算机成功地构建Android应用程序,并使用调试密钥和来自我的密钥库的发布密钥进行签名,因此它应该会存在于每台计算机上。
使用以下命令:
jarsigner

在这两台机器上都返回一个命令未找到错误。我已经查看了Android SDK文件夹、Windows上的JDK文件夹以及/usr/lib64/jvm/,但是无论我查找的地方它都不在其中。

我认为它可能是用其他名称命名的。我还运行了以下命令:

 find -name jarsigner

在Linux系统上整个系统都尝试了,但没有成功。


1
我的位于/usr/bin/jarsigner,尽管find没有找到它... - Nearoo
11个回答

106

这个文件在你的Java JDK安装目录下的bin文件夹中。如果你只安装了JRE,那么你可能没有这个文件。


这最终证明是问题所在,至少在Linux机器上是如此。然而,SDK必须使用其他东西通过Eclipse进行签名,因为我已经在同一台机器上通过SDK成功签署了许多构建。 - mimicocotopus
3
是的,jarsigner只是一个前端工具,用于使用Java加密类进行签名操作。 - mparaz
1
如果您只安装了JRE——这一点对我来说非常关键。我试图为Web部署创建JNLP文件。在JRE中存在“keytool”。这个答案帮助我在JDK中寻找“jarsigner”。 - Jonathan
放在了:C:/Program Files/AdoptOpenJDK/jdk-8.0.265.01-hotspot/bin/jarsigner.exe - AturSams
在我的情况下,C:\Program Files\Java\jdk-15.0.1\bin。 - Mark Kahn
在Amazon Linux(也许是CentOS?)中,OpenJDK软件包只提供了jarsigner的死链接 - 但可以在软件包的-devel版本中找到它,例如:java-1.8.0-openjdk-devel。 - Idris

21

%JAVA_HOME%\bin\jarsigner

您可以在此处找到jarsigner。请先安装jdk。


2
我之前安装了JRE而不是JDK。所以,我要找的路径是:C:\Program Files\Java\jdk1.6.0_45\bin\jarsigner。 - Jason
%JAVA_HOME%\bin在我的PATH中无法正常工作。我不得不将完整路径放入PATH设置中。这不是Java命令第一次出现这种情况。(Windows 7) - quilkin
这是对于那些没有任何安装问题的最佳方式。然而,我会使用引号来支持带有空格的路径:"%JAVA_HOME%\bin\jarsigner",因为大多数Windows安装都在Program Files中。 - Alexei - check Codidact

11

为了后人纪念,如果你要使用jarsigner签署一个jar文件(例如applet的jar文件),并且使用keystore,你需要在运行命令时引用jarsigner,并且需要从包含keystore的文件夹中运行该命令:

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目录中!),所以我希望这将有助于那些想要看到可用语法的人。


9
如果您使用的是Mac或Linux系统,请打开终端并输入以下命令:
whereis jarsigner

它会告诉你jarsigner的位置。

4

在我的情况下,我尝试了这个:

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

我使用的是OpenJDK。


3
如果您找不到它,请从这里下载并安装Java JDK。

1
当您的JAVA_HOME变量中只安装了JRE而非JDK时,会出现此错误。不幸的是,您不能在同一变量中安装两者,因此您需要使用新的JDK安装路径覆盖该变量。
该过程与安装JRE的方式相同。

1

2
在链接失效或无法访问的情况下,将相关部分添加到此处可能是一个好主意。 - CubeJockey

1
这将为您安装jdk并检查其中的。
sudo apt install -y default-jdk

要找到jarsigner,您可以使用whereis jarsigner

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接