java - linux下没有安装jdk如何运行JarSigner?

标签 java jarsigner

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

我尝试将 jarsigner 从 JDK 安装的 bin 文件夹复制到 JRE 的 bin 文件夹,并将 tool.jar 从 JDK 的 lib 复制到 lib JRE 的文件夹。但没有成功。

收到的错误消息:

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 运行时环境中的方式有​​关。

关于java - linux下没有安装jdk如何运行JarSigner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589237/

相关文章:

java - 如果没有构造函数,我怎样才能让这段代码发挥同样的作用?

java - 我需要更改网页的内容而不刷新服务器端发生更改的位置

android - 使用 Release 签署 Android APK

android - 从命令行签署 Android App Bundle

java - 带有 https tsa 的 JDK 1.7 jarsigner 不再有效

java - 如何使用 jarsigner 签署 apk?

java - 将tomcat和eclipse集成为热部署环境

java - 选项列表转换器

java - CardView 未以编程方式添加到 LinearLayout

java - 如何防止 jarsign 脚本覆盖已签名 jar 中的现有 list 值?