我有两个版本的Java库Update Required = NO
,每个版本都有相同的类集(但实现不同)。我想编写一个Java类,从一个版本导入一些类,并从另一个版本导入一些类。
我知道我可以通过给他们不同的名字在编译中包括两者:
model.jar
但是任何javac -cp model.jar;model2.jar MyClass.java
语句都会从我在类路径中指定的第一个.jar文件中导入相应的类。
我可以在import
语句中指定要从哪个库导入,因为两个文件的库结构都相同吗?
答案 0 :(得分:3)
这是不可能的(实际上,至少不是那么简单)。
根据您要实现的目标,如果您真的必须使用两个版本的库,则可以尝试使用OSGi,Jboss-Modules等模块系统。
答案 1 :(得分:2)
如果类具有相同的名称(包括包),除非您使用不同的类加载器,否则没有机会。 Java将始终使用它在类路径上找到的第一个匹配类。
此外,如果在不同版本中使用相同的库,可能会出现令人讨厌的问题。你应该尝试以另一种方式解决这个问题。
答案 2 :(得分:1)
你不能这样。
你唯一能做的就是使用一个脚本从你想要的类中生成一个jar,然后将那个jar放在类路径中