0

我编写了一个在内部使用 java.util.ArrayList 和 java.util.LinkedList 的 List 实现。现在,我有一组想要动态加载然后从 Java 调用的 JAR,但是我的实现被重定向到它使用 LinkedList 或 ArrayList 的任何地方。

有没有办法做到这一点,而不必将源下载到 JAR,手动替换所有内容然后重新编译?

4

1 回答 1

1

您可以将 Java 安装复制到一个新位置,将您的代码编译为java.util.ArrayListjava.util.LinkedList(即使用rt.jar类路径上的 编译您的代码)。

然后使用jar -u将新类放入rt.jar. 由于rt.jar未签名,因此您无需修改​​其他任何内容。

这为您提供了一个新rt.jar的 Java 安装副本。替换文件并使用java新副本启动项目。该代码现在将选择您的版本。

根据您使用的 Java 版本,您还可以尝试设置“引导类路径”。使用您的替换类创建一个 JAR 并将它们首先放入此类路径中。Oracle 虚拟机的文档

于 2013-10-28T10:30:41.463 回答