gpt4 book ai didi

javafx - JavaFX 12 中的 WebConsoleListener IllegalAccessError

转载 作者:行者123 更新时间:2023-12-02 00:15:16 27 4
gpt4 key购买 nike

我最近下载了最新的 JavaFX SDK 12,我希望在我的 JavaFX WebView 中拦截控制台消息。

所以,我有这个

WebConsoleListener.setDefaultListener((webView, message, lineNumber, sourceId) -> {
//////// I am listening for a specific console message here in my
///webview
});

但我不断得到


Caused by: java.lang.IllegalAccessError: class rumbler.launcher.ApplicationLoader (in unnamed module @0x5c4c6905) cannot access class com.sun.javafx.webkit.WebConsoleListener (in module javafx.web) because module javafx.web does not export com.sun.javafx.webkit to unnamed module @0x5c4c6905

这是我的build.gradle 文件

javafx {
version = "12.0.1"
modules = ['javafx.base', 'javafx.controls', 'javafx.web']
}

这是我的VM OPTIONS

--module-path "path_to_\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml,javafx.web,javafx.base

.我错过了什么吗?

最佳答案

您正在使用私有(private) API,不建议这样做。

无论如何,错误信息很清楚:

module javafx.web does not export com.sun.javafx.webkit to unnamed module @0x5c4c6905

每当你想从你的项目中访问一些非公开的包(无论是模块化还是非模块化),你都需要使用--add-exports:

The command line option --add-exports $module/$package=$readingmodule exports $package of $module to $readingmodule. Code in $readingmodule can hence access all public types in $package but other modules can not. [source].

所以在这种情况下,解决方案很简单:

--add-exports javafx.web/com.sun.javafx.webkit=ALL-UNNAMED \
--module-path "path_to_\javafx-sdk-11.0.2\lib" \
--add-modules javafx.web,javafx.fxml

关于javafx - JavaFX 12 中的 WebConsoleListener IllegalAccessError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57167872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com