我在不同的 JAR 中有两个具有相同包的类。直到以前的版本,这两个类都是相同的,所以我在加载它们时没有问题。现在,其中一个添加了一个新方法,如果我想访问它,我不仅应该使用该包导入类,我还需要确保具有正确类的 jar 在类路径中首先出现。
IEjavac -classpath "%classpath%;a.jar;b.jar" MyClasses..
我的新方法在哪里a.jar
上课。
现在,当我的应用程序投入生产时,我如何确保这一点,它被部署为 EAR 文件,所有库都在 WEB-INF/lib 下?
我怎么知道哪个罐子比另一个罐子更受欢迎?是不是像 a.jar 这样的字母顺序优先于 b.jar?
我已经阅读了这个safe-class-imports-from-jar-files线程并了解了如何编写自定义类加载器,但是有没有更好更简单的解决方案呢?因为我只是要在当前项目的整个 JAR 中访问此方法,而编写类加载器似乎有点矫枉过正。
并且请不要问我“为什么在不同的 JAR 中具有相同的包的同一个类?” 这完全超出了我的控制,需要一些时间才能纠正。
环境细节:IBM WAS 6.1 on their 1.5 Java。
如果我没有多大意义,请再问我一些问题。提前致谢!