首页 > 解决方案 > Java 11 + 网景 JSObject

问题描述

我有一个从 Java 8 迁移到 Java 11 的旧项目。

编译项目时,我使用这些 VM 选项:

--module-path /path/to/javafx-sdk-11.0.2/lib --add-modules=javafx.controls,javafx.fxml,javafx.swing,javafx.graphics,javafx.media,javafx.web --add-reads javafx.graphics=ALL-UNNAMED --add-opens javafx.controls/com.sun.javafx.charts=ALL-UNNAMED --add-opens javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED --add-opens javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED --add-opens javafx.graphics/com.sun.javafx.css=ALL-UNNAMED --add-opens javafx.base/com.sun.javafx.runtime=ALL-UNNAMED

我不知道为什么,但是在 Intellij 中启动项目时会引发以下错误:

错误:(4, 27) java: 包 netscape.javascript 不存在

错误:(68, 19) java: 找不到符号 symbol: class JSObject

但据我所知,JSObject 在 Java11 中仍然可用,对吧? https://docs.oracle.com/en/java/javase/11/docs/api/jdk.jsobject/netscape/javascript/JSObject.html 我看到一种已弃用的方法,但该类仍然可用。

可能是什么问题?

标签: javaintellij-ideajava-11jsobject

解决方案


我有一个类似的问题,我不得不添加这个:

--add-modules jdk.jsobject --add-exports=javafx.web/com.sun.javafx.webkit=ALL-UNNAMED

不确定您是否需要 --add-exports 部分,但可能第一部分很重要,因为 jdk.jsobject 模块包含 netscape.javascript.JSObject 类。

希望那有所帮助...


推荐阅读