Gradle 模块java.base不支持;打开java.lang.reflect";到com.jfoenix模块

Gradle 模块java.base不支持;打开java.lang.reflect";到com.jfoenix模块,gradle,javafx,jfoenix,module-info,jpackage,Gradle,Javafx,Jfoenix,Module Info,Jpackage,在开始描述我是如何得到这个错误之前,以下是一些重要信息: 在我的项目中使用module-info.java是非常重要的,因为如果不使用它,jpackage将无法工作 我使用的是SDK 14.0.2(这是允许使用软件包的最低版本) 每一条评论都将不胜感激;尽管如此,如果您要评论与使用特定VM参数相关的内容,我要求您按ctrl+F检查我是否已经在使用您要建议的参数,因为在我的build.gradle中有一堆VM参数- 好的,让我们来看看我的问题: 首先,关注下面的VM参数: "--add-

在开始描述我是如何得到这个错误之前,以下是一些重要信息:

  • 在我的项目中使用module-info.java是非常重要的,因为如果不使用它,jpackage将无法工作
  • 我使用的是SDK 14.0.2(这是允许使用软件包的最低版本)
  • 每一条评论都将不胜感激;尽管如此,如果您要评论与使用特定VM参数相关的内容,我要求您按ctrl+F检查我是否已经在使用您要建议的参数,因为在我的build.gradle中有一堆VM参数-
  • 好的,让我们来看看我的问题:

    首先,关注下面的VM参数:

    "--add-opens=java.base/java.lang.reflect=com.jfoenix",
    
    如果不使用此参数,程序运行时会弹出以下错误:

    java.lang.reflect.InaccessibleObjectException: Unable to make boolean java.lang.reflect.AccessibleObject.setAccessible0(boolean) 
    accessible: module java.base does not "opens java.lang.reflect" to module com.jfoenix
    
    要点->这是我的视图在不使用前面提到的VM参数的情况下的显示方式(我们称之为图像1):

    “好的,那么为什么不使用VM参数呢?” 好问题!好的,让我们将其添加到我的VM参数中,然后再次运行该程序

    这样做之后,我的视图现在是这样的(我们称之为图2):

    太好了!这正是我的观点应该是什么样的(注意,考虑到它按预期工作,这次我没有任何错误)

    因此,一切正常后,我终于可以继续运行我的jpackage gradle任务了。这样做之后,事情就失去了意义,因为在通过.exe(由jpackage生成)执行程序后,我的视图看起来像“image 1”视图,而不管我的项目在使用“run”gradle任务运行时是否正常工作

    你有没有想过为什么会这样?(我的猜测是,我的module-info.java是解决这个问题的关键,因为每次我删除一个“opens”语句,例如:“opens My.package.name to javafx.fxml”,程序都会得到几乎相同的错误)。 让我知道是否需要任何代码示例。我们将不胜感激。谢谢


    编辑:相关GitHub问题:

    我不知道jpackage gradle任务是如何工作的,我通过控制台在jdk内部使用jpackage工具,并且在创建包时使用了这个参数

    --java-options "--add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker=javafx.fxml --add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.colorpicker=javafx.fxml"
    
    在那里,我将PaintPicker从scene builder工具包打开到javafx.fxml
    正如您所看到的,我必须打开两个包(它们实际上是五个,但放在这里太多了),您必须为每个要打开的包指定
    --addopens

    我将代码y用于使用jpackage打包应用程序

    jpackage.exe 
        --module-path 
            .;D:\builds\ikonlibrowser\target\ikonlibrowser.jar;
            D:\builds\ikonlibrowser\libs\icons\ikonli-antdesignicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-bootstrapicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-boxicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-bpmn-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-captainicon-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-carbonicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-codicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-coreui-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-dashicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-devicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-elusive-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-entypo-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-evaicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-feather-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-fileicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-fluentui-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-fontawesome-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-fontawesome5-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-fontelico-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-foundation-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-hawcons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-icomoon-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-ionicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-ionicons4-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-jamicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-ligaturesymbols-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-lineawesome-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-linecons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-maki-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-maki2-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-mapicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-material-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-material2-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-materialdesign-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-materialdesign2-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-medicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-metrizeicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-microns-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-ociicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-octicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-openiconic-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-paymentfont-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-prestashopicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-remixicon-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-runestroicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-simpleicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-simplelineicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-subway-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-themify-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-typicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-unicons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-weathericons-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-websymbols-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-whhg-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-win10-pack-12.2.0.jar
    D:\builds\ikonlibrowser\libs\icons\ikonli-zondicons-pack-12.2.0.jar
            D:\builds\ikonlibrowser\libs\scenebuilder-kit-16.0.0.jar;
            D:\builds\ikonlibrowser\libs\jfoenix-9.0.10.jar
            D:\builds\ikonlibrowser\libs\ikonli-core-12.2.0.jar;
            D:\builds\ikonlibrowser\libs\ikonli-javafx-12.2.0.jar
        --module jcc.app.ikonlibrowser/jcc.app.ikonlibrowser.Main 
        --name "Ikonli Browser" -d D:\builds\ikonlibrowser
        --win-dir-chooser 
        --input D:\builds\ikonlibrowser\app
        --vendor jCC 
        --app-version "1.0.0"
        --java-options 
            "--add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker=javafx.fxml
            --add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.colorpicker=javafx.fxml
            --add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.rotator=javafx.fxml
            --add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.slider=javafx.fxml
            --add-opens com.gluonhq.scenebuilder.kit/com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.gradientpicker=javafx.fxml"
    
    当然,这只是一行。
    现在我将一步一步地解释:
    --模块路径
    此参数用于指定应用程序使用的所有模块的路径。包括application.jar
    --module
    此参数指定应用程序的主类。首先是模块名,然后是类全名。
    --name
    用于指定应用程序名称。
    -d
    指定输出路径。
    --win dir chooser
    提供了安装打包应用程序时选择安装路径的选项
    --input
    指定包含应用程序外部资源的文件夹
    --供应商
    供应商名称。也许你的名字
    --应用程序版本
    应用程序的版本
    ——java选项
    jvm选项


    我希望它对您有效,为延迟道歉。

    为延迟回复道歉,我正试图找到一种在我的环境中实现您的评论的方法,刚刚找到了一种方法
    您的评论之所以有趣,是因为它让我对使用以下VM参数运行jpackage有了一些希望:
    “--addopens=java.base/java.lang.reflect=com.jfoenix”
    如果这样做有效,jpackage将能够成功构建我的应用程序。您是否可以发布您的分步说明如何在控制台中使用VM参数来创建包?此外,任何指南,视频,文件,链接,由您使用将不胜感激!谢谢对不起,伙计,没有视频,在oracle网站上你可以找到关于它的文档,但因为我是古巴人,所以无法访问,这可能会对你有所帮助