Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自签名jar文件,不';找不到JarSigner类_Java_Keytool_Jarsigner_Jar Signing - Fatal编程技术网

Java 自签名jar文件,不';找不到JarSigner类

Java 自签名jar文件,不';找不到JarSigner类,java,keytool,jarsigner,jar-signing,Java,Keytool,Jarsigner,Jar Signing,我正在尝试签署我的java小程序。 我运行了以下行来创建证书: keytool -genkey -keystore myKeyStore -alias ben keytool -selfcert -keystore myKeyStore -alias ben 到目前为止,一切都很顺利。它需要密码和一些详细信息,并创建MyKeyStore文件 然后我运行以下行: jarsigner -keystore myKeyStore nnis.jar ben 但它所做的只是告诉我: Error: Cou

我正在尝试签署我的java小程序。 我运行了以下行来创建证书:

keytool -genkey -keystore myKeyStore -alias ben
keytool -selfcert -keystore myKeyStore -alias ben
到目前为止,一切都很顺利。它需要密码和一些详细信息,并创建MyKeyStore文件

然后我运行以下行:

jarsigner -keystore myKeyStore nnis.jar ben
但它所做的只是告诉我:

Error: Could not find or load main class sun.security.tools.JarSigner
文件tools.jar(其中存在JarSigner.class)位于“PATH”中,为了确保这一点,我还将其复制到运行JarSigner命令的本地目录中

我做错了什么


如果您能给我一些建议,我将不胜感激——要么解决问题,要么绕过它。

Jarsigner.exe会搜索tools.jar相对于它自己的位置。在JDK中,它们位于:

<jdk-install-folder>\bin\jarsigner.exe
<jdk-install-folder>\lib\tools.jar
\bin\jarsigner.exe
\lib\tools.jar

只要您保持相同的相对文件夹结构,它就会找到JarSigner类。例如,如果您的jarsigner.exe位于C:\Temp\yoursfolder\jarsigner.exe,您应该将tools.jar放入C:\Temp\lib\tools.jar

“我做错了什么?”从..开始。。“我将文件tools.jar(其中存在JarSigner.class)放在运行命令的同一目录中。”不要这样做。将JRE的组件放在安装位置,并将其添加到路径中。谢谢Andrew,我也将dir添加到了路径中,但没有任何帮助(我编辑了问题,这样问题就会清楚了…)忘记路径。JAR文件不在路径上搜索,而是在类路径上搜索,或者,如本例所示,直接在JDK或JRE的安装目录中搜索。只需将整个JDK或JRE恢复到您开始毫无意义地摆弄它之前的状态。如有必要,请重新安装。