如何在Java中选择从哪个库导入类?

时间:2016-04-05 08:13:46

标签: java

我有两个版本的Java库Update Required = NO,每个版本都有相同的类集(但实现不同)。我想编写一个Java类,从一个版本导入一些类,并从另一个版本导入一些类。

我知道我可以通过给他们不同的名字在编译中包括两者:

model.jar

但是任何javac -cp model.jar;model2.jar MyClass.java 语句都会从我在类路径中指定的第一个.jar文件中导入相应的类。

我可以在import语句中指定要从哪个库导入,因为两个文件的库结构都相同吗?

3 个答案:

答案 0 :(得分:3)

这是不可能的(实际上,至少不是那么简单)。

根据您要实现的目标,如果您真的必须使用两个版本的库,则可以尝试使用OSGiJboss-Modules等模块系统。

答案 1 :(得分:2)

如果类具有相同的名称(包括包),除非您使用不同的类加载器,否则没有机会。 Java将始终使用它在类路径上找到的第一个匹配类。

此外,如果在不同版本中使用相同的库,可能会出现令人讨厌的问题。你应该尝试以另一种方式解决这个问题。

答案 2 :(得分:1)

你不能这样。

你唯一能做的就是使用一个脚本从你想要的类中生成一个jar,然后将那个jar放在类路径中