是否可以选择使用 Java 7 API?

发布于 2024-12-25 09:07:37 字数 633 浏览 0 评论 0原文

可能的重复:
在 Java 6 中使用 Java 7 SDK 功能

我有一个 Java应用程序(实际上它是一个 Scala 应用程序,但我认为这没有太大变化),在 JVM 6 上运行。

我想使用一些新的 Java 7 API,例如 NIO2 如果可用,但是如果其他实现不可用,则回退到其他实现。目标是尽可能使用 Java 7 API,同时使用相同的二进制文件 (jar) 保持与 Java 6 的兼容性。

通过检查 Class.forName("java.nio.file.attribute.BasicFileAttributeView") 应该可以,但我不知道如果 java 类文件有不同的版本,这会如何将导致无法在可在 Java 6 中运行的代码中使用 Java 7 类。

Possible Duplicate:
Using Java 7 SDK features in Java 6

I have a Java application (actually it is a Scala application, but I don't think that this changes much), running on JVM 6.

I would like to use some of the new Java 7 APIs like NIO2 if they are available, but fallback to other implementation if they are not available. The goal is to make use of Java 7 APIs if possible while keeping compatibility with Java 6 with the same binaries (jar).

It should be possible by checking with Class.forName("java.nio.file.attribute.BasicFileAttributeView"), but I don't know how if e.g. the java class files have a different version, which would make it impossible to use Java 7 classes in code that is also runnable in Java 6.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

标点 2025-01-01 09:07:37

一种方法是 - 使用接口对应用程序逻辑进行编码。将实现捆绑在两个不同的 jar 中 - 一个包含基于 JDK6 的实现,另一个包含 JDK7 实现。在运行时,使用 System.getProperty("java.version") 获取 java 版本并实例化适当的实现(或者可以使用策略模式来设置适当的策略)。

One way could be - code the application logic using interfaces. Bundle the implementation in two different jars - one containing JDK6 based implementation and the other with JDK7 implementation. At runtime, get the java version using System.getProperty("java.version") and instantiate appropriate implementation (or may be use Strategy pattern to set the appropriate strategy).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文