我编写了一个List实现,在内部使用java.util.ArrayList和java.util.LinkedList。现在,我有一组JAR,我想动态加载然后从Java调用,但我的实现重定向到它使用LinkedList或ArrayList的任何地方。
有没有办法在不必将源代码下载到JAR,手动替换所有内容然后重新编译的情况下执行此操作?
答案 0 :(得分:1)
您可以将Java安装复制到新位置,将代码编译为java.util.ArrayList
和java.util.LinkedList
(即使用类路径上的rt.jar
编译代码)。
然后使用jar -u
将新类放入rt.jar
。由于rt.jar
未签名,因此您无需修改任何其他内容。
这为您的Java安装副本提供了新的rt.jar
。替换文件并使用新副本中的java
启动项目。代码现在将提取您的版本。
根据您使用的Java版本,您还可以尝试设置"引导类路径"。使用替换类创建JAR并将它们放在此类路径中。 Documentation for Oracle's VM