java - 在安装程序未安装 jdk/jre 的 Windows 操作系统上启动 jarsigner.exe

标签 java jarsigner

我已将 jre 文件嵌入到我的应用程序设置中,我可以使用 java.exe 执行一些 java 特定任务。

我想使用 jarsigner.exe,但是当我启动 jarsigner 时,它会检查一些注册表项,但找不到(因为 jre 不是由 jre 安装程序安装的)它们并给出错误。

如何指定 jarsigner 的 java.exe 路径

这样它应该使用我指向的 java.exe 而不是检查注册表。

错误日志:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment

Error: could not find java.dll

Error: could not find Java SE Runtime Environment

我想知道 jarsigner 是否有任何额外的参数可能定义 JAVA_HOME 目录,或定义 java.exe 存在位置的任何其他参数。

最佳答案

没有特定的命令行参数,但是在调用 jarsigner 时,您仍然可以设置 java.home 属性以指向与应用程序捆绑在一起的所需 JRE .

例如,您可以使用以下任一方式调用 jarsigner:

  • ProcessBuilder并设置java.home属性,
  • Runtime.exec() 的变体允许设置 envp 环境变量,
  • 或批处理/shell 脚本并在其中设置 JAVA_HOME 属性。

关于java - 在安装程序未安装 jdk/jre 的 Windows 操作系统上启动 jarsigner.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991856/

相关文章:

java - java中检测按钮使用的方法

java - 检查ArrayList是否包含数组对象

java - 字符串到数组 Java 到 Json 对象

java - 如何修复在给出 "SocketException: Permission denied: connect"的命令行窗口中使用的 jarsigner 问题

java - Jarsigner 签署 Corda 工作流程 jar 时出现重复条目​​错误

android - apk 必须使用与以前版本相同的证书进行签名

apk - 为什么在对我的 APK 执行 "no manifest."时会得到 "jar is unsigned."和 "jarsigner -verify -verbose -certs"

visual-studio - 从命令行构建的 Xamarin.Forms android 应用程序不起作用

java - 您如何对上传到您的 java webapp 的文件进行病毒扫描?

java - 必须有更好的方法来写这个