java - 如何在没有在 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" );
解决方案
没有 JDK,你就不能拥有 JarSigner。如果您尝试单独使用 JarSigner,则会出现以下错误跟踪:
Error: could not find libjava.dylib
Error: Could not find Java SE Runtime Environment.
这与 JarSigner 如何工作以及如何将其自身集成到 Java 运行时环境中有关。
推荐阅读
- javascript - React-day-picker 测试与酶和玩笑
- google-apps-script - 我可以更轻松地在谷歌电子表格中导入和求和值吗?
- swift - 表格视图卡住了很多
- python - 从 YouTube 数据 API 接收正确的数据
- reactjs - Eslint-plugin-react + atom + sftp:找不到模块'eslint-plugin-react'
- javascript - 我需要拖放一些图像,并且需要将平面图形成为 html
- android - 如何在android studio中更改滚动限制的颜色
- c# - 关于 ListChange 事件行为
- c# - 如何在不使用字符串的情况下在 .NET Core 中绑定 SecureString 或 char[] 参数
- android - 长时间不活动后打开推送消息