类路径中具有相同名称的两个类
如果我有两个同名的类,比如 Matcher.java在我的类路径中的两个不同的 jar 中,哪一个将被 JVM 拾取,那么我是否可以建议 JVM 选择一个特定的类?
如果我有两个同名的类,比如 Matcher.java在我的类路径中的两个不同的 jar 中,哪一个将被 JVM 拾取,那么我是否可以建议 JVM 选择一个特定的类?
引用甲骨文:
规格顺序
指定多个类路径条目的顺序非常重要。Java 解释器将按照类路径变量中出现的顺序在目录中查找类。在上面的示例中,Java 解释器将首先在目录 C:\java\MyClasses 中查找所需的类。只有当它在该目录中找不到具有正确名称的类时,解释器才会在C:\java\OtherClasses目录中查找。
这个例子提到:
C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses ...
所以,是的,它将加载出现在首先指定的类路径中的那个。
在类路径中找到的第一个。即,将使用包含您的类的第一个jar。
您无法从 JVM 中控制它,但可以控制类路径 - 确保在类路径中首先列出/找到所需的类路径。