【问题标题】:How to set -Xbootclasspath for a JRE with a custom launcher?如何使用自定义启动器为 JRE 设置 -Xbootclasspath?
【发布时间】:2010-03-06 19:54:17
【问题描述】:

我有一个使用特定 Java 运行时环境的 Java 应用程序。该应用程序使用它自己的启动器来启动 java 虚拟机。没有使用 java.exe、javaw.exe、javaws.exe 二进制文件——因为应用程序似乎有它自己的启动器,它是一个不同的可执行文件。这个自定义启动器正在使用其余的 JRE 文件,例如 bin/client/jvm.dll 和 rt.jar 包等。

现在,问题是我想为这个自定义启动器设置一个引导类路径。自定义启动器不支持 -Xbootclasspath 命令行参数,就像默认的 java.exe 一样。

我现在有什么方法可以为这个 java 运行时环境设置引导类路径吗?

提前致谢。

注意事项:

  1. 我没有此应用程序的来源
  2. 仅供个人和个人调试使用,不用于分发

更新:没有得到很多回复,所以让我重新表述我的问题。 http://my.safaribooksonline.com/0672326388/ch15lev1sec5 之类的书告诉你设置 -Xbootclasspath,但是当应用程序有自己的 JRE 启动器直接加载 java 库而不使用默认的 java.exe 等可执行文件时,如何设置这样的路径?

【问题讨论】:

  • 增加了赏金,也许会有所帮助。 :)

标签: java


【解决方案1】:

如果我理解正确,自定义启动器是一些本地代码应用程序,它启动 JVM 以运行 Java 应用程序;即java.exe 等,...但不同。

可能起作用的几件事是:

  • 将您的 JAR 添加到 Java 安装的“认可”目录中,或者

  • 将您的内容插入安装的“rt.jar”文件或其他一些标准 JAR。

但在这两种情况下,您都可能会为使用它的每个应用程序(和个人)更改 Java 安装的行为。

【讨论】:

  • 差不多,只是它没有启动 java.exe,但我认为它做了 java.exe 所做的事情,也就是启动虚拟机。不幸的是,rt.jar 文件已签名(可能是校验和),对其进行任何更改都会导致程序无法加载 java 运行时环境。不幸的是,默认情况下,该应用程序似乎也不在“认可”文件夹中查找引导类。我现在没有选择了吗?
  • “我现在没有选择了吗?”我认同。您可能已经在 vis-a-vis 逆向工程上如履薄冰。
  • 对我来说似乎很奇怪我无法控制自己的 java 运行时环境。我现在可能不得不操作自定义启动器以避免对 rt.jar 存档进行校验和验证,可惜我在这个领域没有经验。
  • “对我来说,我无法控制自己的 java 运行时环境似乎很奇怪。” - 该应用程序已通过使用自定义启动器控制/删除了您的选择。 (这类似于与特定版本的运行时库链接的二进制 C++ 应用程序。您“调整”的能力已大大降低。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多