4

我目前正在考虑将 JSR-310 的一小部分添加javax.time.Duration到我们的库中。

目前这工作得很好。

但是 JSR-310 计划集成到 Java 8 中!在 Java 8 上执行我们的应用程序时,如果javax.time.Duration标准库中同时存在一个类,并且我们的 jar 文件附带了同一个类,会发生什么情况?

其中一个课程会被默默忽略吗?(哪一个?)当 Java 8 VM 尝试从我们的库中加载类时会出错吗?

我需要注意任何兼容性问题吗?

4

2 回答 2

6

JVM 遵循类路径来确定要加载的类。如果有多个,后面的类将被忽略。

对于 JVM 本身包含的类,这些是在类路径之前搜索的引导类路径的一部分。

除非 API 发生重大变化,否则您不应该注意到差异,并且您的额外 JAR 将在 Java 8 中有效地被忽略。

于 2012-09-05T11:39:11.267 回答
1

现在可以澄清这个问题。

JDK1.8 类将位于java.time命名空间中,并且不能被覆盖(因为它们深入Java 的核心)。

有一个backport 项目可用,它允许在 JDK1.7 上使用非常相似的 API。那使用org.threeten.bp命名空间。这个想法是,向前推进到 JDK1.8 将只需要在大多数情况下重命名包。

javax.time名称空间不再使用。

于 2013-04-09T14:27:51.967 回答