如何在没有在 Linux 中安装 jdk 的情况下运行 JarSigner?



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

我尝试将jarsigner从 JDK 安装的 bin 文件夹复制到 JRE 的 bin 文件夹中,并将tool.jar从 JDK 的库复制到 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" );

没有JDK就不能有JarSigner。 如果您尝试独立使用 JarSigner,将显示以下错误跟踪:

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

这与 JarSigner 的工作方式以及如何在 Java 运行时环境中集成自身有关。

最新更新