我目前正在考虑将 JSR-310 的一小部分 javax.time.Duration
添加到我们的库中。
这目前工作得很好。
但 JSR-310 计划集成到 Java 8 中!在 Java 8 上执行我们的应用程序时,如果标准库中既有 javax.time.Duration
类又与我们的 jar 文件一起提供了相同的类,会发生什么情况?
其中一个类会被默默地忽略吗? (哪一个?) 当 Java 8 虚拟机尝试从我们的库中加载类时会出现错误吗?
是否有任何我需要注意的兼容性问题?
最佳答案
JVM 遵循类路径来确定加载哪个类。如果不止一个,后面的类将被忽略。
对于包含在 JVM 本身中的类,这些是在类路径之前搜索的引导类路径的一部分。
除非 API 发生重大变化,否则您不会注意到其中的差异,并且 Java 8 会有效地忽略您额外的 JAR。
关于java - 当我们的 jar 附带的类被添加到 Java 标准库时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280533/