2012-08-27 104 views
44

我在使用开放式SuSE 12.1的Linux机器上安装了Android SDK。我已经使用这两台机器成功构建Android应用程序多次,并使用用于测试的调试密钥和我自己的密钥库中的释放密钥对它们进行签名,因此它应该位于每台计算机上的某个位置。jarsigner在哪里?

使用命令

jarsigner 

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

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

find -name jarsigner 

整个系统在Linux上没有成功。

+0

该矿位于'的位置/ usr/bin/jarsigner',即使'find'没有找到它... – Nearoo

回答

74

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

+0

原来这是问题,至少在Linux上。但是,SDK通过Eclipse进行签名时必须有其他东西,因为我已经通过SDK在同一台机器上成功签署了许多版本。 – mimicocotopus

+3

是的,jarsigner只是使用执行签名的Java加密类的前端。 – mparaz

+1

“如果你只安装了JRE” - 这部分对我来说很重要。试图创建一个用于Web部署的JNLP。 “keytool”存在于JRE中。这个答案帮助我在JDK中寻找“jarsigner”。 – Jonathan

14

%JAVA_HOME%\ BIN \的jarsigner

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

+2

我在JDK之前安装了JRE。所以,我正在寻找的路径是:C:\ Program Files \ Java \ jdk1.6.0_45 \ bin \ jarsigner – Jason

+0

%JAVA_HOME%\ bin在我的PATH中不能用作快捷方式。我必须将完整路径放入PATH设置。这不是Java命令第一次发生这种情况。 (Windows 7) – quilkin

+0

这对于那些没有任何安装问题的人来说是最好的方式。但是,我会使用引号来支持带空格的路径:''%JAVA_HOME%\ bin \ jarsigner“',因为大多数Windows安装位于'Program Files'内。 – Alexei

3

如果你不能找到它,请下载并here

4

安装Java JDK为后人的缘故,如果你想实际使用的jarsigner签署jar文件(如一个applet与)密钥库,你需要引用的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 

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

0

如果您只在您的JAVA_HOME变量中安装了JRE而不是JDK,则会出现此错误。不幸的是,你不能将它们都安装在同一个变量中,所以你只需要用新的JDK安装路径覆盖变量。

的过程应该是一样的,你必须安装JRE

2

如果你是Mac或Linux操作系统,只是去到终端,然后键入:

whereis jarsigner 

它会给你的jarsigner