【发布时间】:2016-07-25 01:24:10
【问题描述】:
我有两个版本的 Java 库 model.jar,每个版本都有相同的类集(但实现不同)。我想编写一个 Java 类,它从一个版本导入一些类,并从另一个版本导入一些类。
我知道我可以通过给它们不同的名称将它们包含在编译中:
javac -cp model.jar;model2.jar MyClass.java
但是任何import 语句都会从我在类路径中指定的第一个.jar 文件中导入相应的类。
如果两个文件的库结构相同,我可以在我的 import 语句中指定从哪个库导入吗?
【问题讨论】:
-
这是个好问题。另一方面:带有类名的文件的路径应该清楚它的含义和用途。为什么会有两个具有相同路径/类名的类?
-
不是答案,但这看起来像是一种不好的做法。 (@Stultuske OP 有同一个库的两个不同版本)
-
AFAIK,这根本不可能。
-
我使用的是同一库的旧版本,因此具有相同的路径/类名。
-
您可以为每个模块尝试不同的类加载器并使用这些类加载器访问正确的版本,但这仍然是一种糟糕的设计和灾难的接收。尝试不同包中的通用接口和实现。
标签: java