【发布时间】:2016-04-21 12:16:38
【问题描述】:
我们有一个过程需要在不同时间引用两个具有相同名称的不同加密类。两个类名相同,包路径“com.abc.security.encryption”。
这两个类具有相同的包名 com.abc.security.encryption,但是它们存在于不同的 jar 文件中。
假设 Jar A 中存在 ENCRYPTION.class(new logic),Jar B 中存在 ENCRYPTION.class(old logic)。 现在在我的过程中,当我们调用引用 ENCRYPTION.class 的 Jar B API 时,指的是 Jar A 中存在的 ENCRYPTION.class(new logic) 而不是 Jar B 中存在的 ENCRYPTION.class(old logic)。
直到我删除具有 ENCRYPTION.class(new logic) 的 Jar A,Jar B 中存在的 ENCRYPTION.class(old logic) 才被引用。
由于两个加密逻辑都来自许多不同模块使用的不同实用程序模块,我无法要求他们更改包的名称。
我需要一种方法来确保在所需位置引用这两个逻辑而不更改这些模块中的任何内容。 可以在我的进程的类路径或代码中更改任何内容,以便调用 Jar B API 调用 Jar B 本身中存在的 ENCRYPTION.class(old logic)。当我直接调用 ENCRYPTION.class 时,它应该引用 Jar A 中的 ENCRYPTION.class(new logic)。
尝试将第一个类路径添加为“。”为过程。但它并没有解决问题。 非常感谢您的帮助。
谢谢, 不知道
【问题讨论】:
-
这不是你问题的答案,但不要这样命名。据我所知,不支持。
-
在其他模块中完成,我们无法更改。需要一个解决方案以不同的时间间隔调用它们。
标签: java classloader