修补或覆盖核心Java 10类的实现

jam*_*bit 14 java classloader java-10

JFX中存在一个错误,通常在计算屏幕坐标时显示出来 https://bugs.openjdk.java.net/browse/JDK-8194727https://bugs.openjdk.java.net/browse/JDK-8190400

我已将问题跟踪到GeneralTransform3D的实现,这是javajfx运行时的一部分.

我已经向Oracle提交了一个错误报告,但在它被接受,修复并进入发布之前,我需要一种修复我的应用程序的方法.

在java 8中,我能够创建一个包含该类的固定版本的jar并将其安装在lib/ext文件夹中.这似乎有效,JFX实现使用了我自己的impl.

在java 10中,已删除扩展机制.将补丁jar添加到类路径不起作用,因为在类加载过程中为时已晚.

有没有办法在Java 10中覆盖/修补核心java类的实现?

请注意,我没有直接使用此类,它由框架使用

Nic*_*lai 5

Alan再次给出了最佳答案作为评论。:) 引用:

--patch-module javafx.runtime=patch.jar是覆盖此模块中的类的正确方法

如果您需要“覆盖”平台模块中的类,请使用--patch-module来执行此操作。如果这会带来额外的依赖项,请确保使用--add-reads.