2

我对 openHFT 项目使用的堆外机制感到好奇,我正在寻找下面源代码定义的类文件(在 github 中的任何地方都找不到):

Class<? extends Memory> java9MemoryClass = Class
                    .forName("software.chronicle.enterprise.core.Java9Memory")
                    .asSubclass(Memory.class);

来自 github 存储库:https ://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java

我的问题是:这个类是开源的吗?如果是,它是如何工作的?谢谢。

4

2 回答 2

3

Java 9 支持是独立的,因为它是一个移动的目标,但是如果您需要在 Java 9 上运行,我们会将其添加为您可以包含的子模块。这仍在进行中。

于 2017-09-04T12:00:25.957 回答
3

该类不可用,将来将被删除。

我们当前的 Java9 兼容性方法是发布针对目标语言级别 1.8 构建的 OpenHFT 工件。Java 运行时中的任何不兼容性(例如类重命名)都将通过使您的程序需要包含 Java9 特定覆盖的 Java9 模块来处理。

回答您关于该类如何工作的问题 - 在版本 9 JVM 上运行时,Chronicle 库将继续使用 sun.misc.Unsafe。有必要手动将导出添加到命令中以允许这样做,例如:

--add-exports=java.unsupported/sun.misc=ALL-UNNAMED
于 2017-09-04T12:14:14.510 回答