首页 > 解决方案 > 如何在没有在 linux 中安装 jdk 的情况下运行 JarSigner?

问题描述

我正在尝试在没有可用 JDK 的 Linux 机器中将JarSigner作为 Java 代码的进程运行。只有 JRE 可用。

我尝试将jarsigner从 JDK 安装的 bin 文件夹复制到 JRE 的 bin 文件夹,以及tool.jar从 JDK 的 lib 到 JRE 的 lib 文件夹。但它没有用。

收到的错误信息:

java.lang.NoSuchMethodError: sun.security.tools.KeyStoreUtil.isSelfSigned(Ljava/security/cert/X509Certificate;)

Process process = Runtime.getRuntime().exec("jarsigner -keystore "
                    + tempFile.getAbsolutePath()
                    + " -storepass stack -keypass overflow -signedjar "
                    + newbtrpFile2.getName() + " "
                    + newbtrpFile1.getName() + " bogus-cert" );

标签: javajarsigner

解决方案


没有 JDK,你就不能拥有 JarSigner。如果您尝试单独使用 JarSigner,则会出现以下错误跟踪:

Error: could not find libjava.dylib
Error: Could not find Java SE Runtime Environment.

这与 JarSigner 如何工作以及如何将其自身集成到 Java 运行时环境中有关。


推荐阅读