1

我使用 JavaFX-11 已经有一段时间了。我在我的项目结构中将 JavaFX 设置为全局库。我还根据需要在项目的 module-info.class 文件中添加了所有模块。

这工作正常,但现在我需要一个类“WebPage”,它位于 javafx.web 模块中。

具体来说,它位于 javafx.web.com.sun.webkit.WebPage 内部。

但是,我的 IDE Intellij-IDEA 无法访问它。当我键入工具提示的整个路径时,在 javafx.web 中声明了包“com.sun.webkit”,它不会将其导出到模块项目名称。

我不太熟悉模块文件的工作原理,但我注意到 javafx.web 中还有一个模块信息文件。但是,它是只读的。如何访问此内容?

4

1 回答 1

1

但我注意到 javafx.web 中也有一个模块信息文件。但它是只读的。我怎样才能访问此内容?

要收集的几点:-

  1. 您要查找的类必须module-info.class来自您导入的库,因此它将是一个只读文件。

  2. 这些com.sun.*类已弃用,最终用户不应使用,因此自 Java-9 以来它们已被删除或制作为 JDK 内部 API(未导出)。

  3. 尝试依赖这些类迁移您的代码。同时,仍然使这项工作的临时解决方案是使用 VM 参数

    --add-exports javafx.web/com.sun.webkit=projectname
    

    其中最后一个参数是您在module-info.java项目中声明的模块名称。

于 2019-01-02T01:45:18.283 回答